C#中获取多个对象list中对象共有的属性项
场景
有一组数据list<TestDataList>
每一个TestDataList是一个对象,此对象可能有温度数据,也可能没有温度数据。
有温度数据的情况下,温度数据属性又是一个list,可能有温度A、B、C等不同种类。
怎样在这组list<TestDataList>找到共有的温度B。
这只是针对温度数据,如果压力和BMS情况也是如此。
注:
博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
- //存储所有辅助通道温度数据的list
- List<List<DataItem>> autxColumnsList = new List<List<DataItem>>();
- //存储所有辅助通道电压数据的list
- List<List<DataItem>> autvColumnsList = new List<List<DataItem>>();
- //存储所有BMS数据的list
- List<List<DataItem>> bmsColumnsList = new List<List<DataItem>>();
- //遍历所有的待比较的实验数据文件
- foreach (TestDataList dataList in Global.Instance.CompTestDataList)
- {
- if (dataList.AutxColumns != null && dataList.AutxColumns.Count > )
- {
- autxColumnsList.Add(dataList.AutxColumns);
- }
- else
- {
- isAllHaveAut = false;
- }
- if (dataList.AuvxColumns != null && dataList.AuvxColumns.Count > )
- {
- autvColumnsList.Add(dataList.AuvxColumns);
- }
- else
- {
- isAllHaveAuv = false;
- }
- if (dataList.BmsColumns != null && dataList.BmsColumns.Count > )
- {
- bmsColumnsList.Add(dataList.BmsColumns);
- }
- else
- {
- isAllHaveBMS = false;
- }
- }
- #region 如果待比较的文件中全部都拥有辅助通道温度
- if (isAllHaveAut)
- {
- List<DataItem> maxCoutItem = new List<DataItem>();
- List<DataItem> allHaveItem = new List<DataItem>();
- foreach (List<DataItem> item in autxColumnsList)
- {
- if(item.Count>maxCoutItem.Count)
- {
- maxCoutItem = item;
- }
- }
- foreach (DataItem dataItem in maxCoutItem)
- {
- bool isAllHavedItem = true;
- foreach (List<DataItem> item in autxColumnsList)
- {
- if (!item.Contains(dataItem))
- {
- isAllHavedItem = false;
- }
- }
- if (isAllHavedItem)
- {
- allHaveItem.Add(dataItem);
- }
- }
- foreach (DataItem item in allHaveItem)
- {
- ScaleTitleModel model = new ScaleTitleModel();
- model.TitleKey = item.DataPropertyName;
- model.Title = item.DisplayName;
- yRadioGrupItems.Add(model);
- }
- }
- #endregion
- #region 如果待比较的文件中全部都拥有辅助通道电压
- if (isAllHaveAuv)
- {
- List<DataItem> maxCoutItem = new List<DataItem>();
- List<DataItem> allHaveItem = new List<DataItem>();
- foreach (List<DataItem> item in autvColumnsList)
- {
- if (item.Count > maxCoutItem.Count)
- {
- maxCoutItem = item;
- }
- }
- foreach (DataItem dataItem in maxCoutItem)
- {
- bool isAllHavedItem = true;
- foreach (List<DataItem> item in autvColumnsList)
- {
- if (!item.Contains(dataItem))
- {
- isAllHavedItem = false;
- }
- }
- if (isAllHavedItem)
- {
- allHaveItem.Add(dataItem);
- }
- }
- foreach (DataItem item in allHaveItem)
- {
- ScaleTitleModel model = new ScaleTitleModel();
- model.TitleKey = item.DataPropertyName;
- model.Title = item.DisplayName;
- yRadioGrupItems.Add(model);
- }
- }
- #endregion
- #region 如果待比较的文件中全部都拥有辅助通道电压
- if (isAllHaveBMS)
- {
- List<DataItem> maxCoutItem = new List<DataItem>();
- List<DataItem> allHaveItem = new List<DataItem>();
- foreach (List<DataItem> item in bmsColumnsList)
- {
- if (item.Count > maxCoutItem.Count)
- {
- maxCoutItem = item;
- }
- }
- foreach (DataItem dataItem in maxCoutItem)
- {
- bool isAllHavedItem = true;
- foreach (List<DataItem> item in bmsColumnsList)
- {
- if (!item.Contains(dataItem))
- {
- isAllHavedItem = false;
- }
- }
- if (isAllHavedItem)
- {
- allHaveItem.Add(dataItem);
- }
- }
- foreach (DataItem item in allHaveItem)
- {
- ScaleTitleModel model = new ScaleTitleModel();
- model.TitleKey = item.DataPropertyName;
- model.Title = item.DisplayName;
- yRadioGrupItems.Add(model);
- }
- }
- #endregion
C#中获取多个对象list中对象共有的属性项的更多相关文章
- 如何在 WPF 中获取所有已经显式赋过值的依赖项属性
原文:如何在 WPF 中获取所有已经显式赋过值的依赖项属性 获取 WPF 的依赖项属性的值时,会依照优先级去各个级别获取.这样,无论你什么时候去获取依赖项属性,都至少是有一个有效值的.有什么方法可以获 ...
- Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题
Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...
- struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)
JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于J ...
- requests从api中获取数据并存放到mysql中
python的requests库是一个非常强大的库,requests的安装方法十分简单,用: pip install requests 即可安装requests,安装成功后: import reque ...
- 如何在 messager/alert/confirm等消息提示框中 获取 / 设置 嵌入 html内容中的 input[type=checkbox]等的选中状态?
总结, 有3点: 不能/不要 在 这些消息框 / 提示框/ 对话框中的 回调函数中去写代码: 获取嵌入 内容中input.checkbox的选中状态, 因为 虽然在这些框存在的时候, 这个 check ...
- android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)
final int[] location = new int[2]; view.getLocationOnScreen(location); final int[] location = new in ...
- java中获取接口(方法)中的参数名字(eclipse设置编译参数)(java8 javac -parameters)
interface接口参数 jdk1.7及以前使用spring功能实现的: 注意: 1.该功能只能获取类的方法的参数名,不能获取接口的方法的参数名. public static void test() ...
- 【2017-06-27】Js中获取地址栏参数、Js中字符串截取
一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" ...
- ASP.NET 4.0 ListView等容器控件中获取ClientID值与HTML中自动生成ID字符串不一样问题。
ASP.NET 4.0 中 ClientIDMode的属性 可以设置获取不同ID格式的值. 项目中遇到的问题: 1.ListView1 ItemDataBound事件中,获取ClientID结果与自动 ...
- 在WPF的MVVM框架中获取下拉选择列表中的选中项
文章概述: 本演示介绍怎样在WPF的MVVM框架中.通过数据绑定的方式获取下拉列表中的选中项.程序执行后的效果例如以下图所看到的: 相关下载(代码.屏幕录像):http://pan.baidu.com ...
随机推荐
- 面试连环炮系列(十五):说说Eureka的高可用方案
说说Eureka的高可用方案 至少3个Eureka实例才能满足高可用,配置方法如下: 准备三个节点node1,node2,node3. 在每个实例的application.xml文件里加入 eurek ...
- Maven使用教程三:maven的生命周期及插件机制详解
前言 今天这个算是学习Maven的一个收尾文章,里面内容不局限于标题中提到的,后面还加上了公司实际使用的根据profile配置项目环境以及公司现在用的archetype 模板等例子. 后面还会总结一个 ...
- 从《彩色圆环》一题探讨一类环上dp的解法
清橙A1202 bzoj2201 bsoj4074 试题来源 2010中国国家集训队命题答辩 问题描述 小A喜欢收集宝物.一天他得到了一个圆环,圆环上有N颗彩色宝石,闪闪发光.小A很爱惜这个圆环,天天 ...
- 松软科技Web课堂:JavaScript While 循环
只要条件为 true,循环能够一直执行代码块. While 循环 while 循环会一直循环代码块,只要指定的条件为 true. 语法 while (条件) { 要执行的代码块 } 实例 在下面的例子 ...
- HTML DOM 学习
HTML DOM 学习 By: Mirror王宇阳 E-mail:2821319009@qq.com 博客主页:https://www.cnblogs.com/wangyuyang1016/ DOM ...
- 搭建API Mock
所需环境 Node.js + MySQL 5.7+ Redis 4.0+ Node.js 安装 .要安装nvm,需要安装构建源包所需的工具,CentOS 上安装,用这些命令来安装构建工具: sudo ...
- Hook Java API以获得MD5加密前数据
Java实现MD5加密 在Java中,我们用MD5对数据进行加密,代码大概是这样的: import java.security.MessageDigest; import java.security. ...
- mysql主从同步问题梳理
前言: MySQL主从复制故障机延迟原因有很多,之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题: 1) ...
- [转]为何选择 Flink
本文转自:https://www.ituring.com.cn/book/tupubarticle/23229 第 1 章 为何选择 Flink 人们对某件事的正确理解往往来自基于有效论据的结论.要获 ...
- 请求*.html后缀无法返回json数据的问题
在springmvc中请求*.html不可以返回json数据. 修改web.xml,添加url拦截格式.