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 ...
随机推荐
- 01-EF Core笔记之创建模型
使用EF Core的第一步是创建数据模型,模型建的好,下班走的早.EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名.主键字段等,毕竟约定大于配置嘛.如果你想改变默认值,很简单,E ...
- Go语言底层知识总结【新手必学】
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:YID_152接下来我们来给大家分享想go的基础知识要点:如果你也刚学 ...
- Java连载62-使用throws关键字处理异常
一.处理异常的两种方式 1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出. 2.捕捉:try.....catch ...
- Nezuko: 1 Vulnhub Walkthrough
下载地址: https://www.vulnhub.com/entry/nezuko-1,352/ 虚拟机启动,设置IP地址DHCP获取 主机发现扫描: 主机层面扫描: ╰─ nmap -p1-655 ...
- Sqlite—锁机制
https://blog.csdn.net/zhangsheng_1992/article/details/52598396 https://blog.csdn.net/xiyangyang8110/ ...
- [C]struct结构化数据的一些要点
1.用typedef声明一个短语代替冗长的struct成员声明 int main(void) { typedef struct Hores Hores; struct Hores { int age; ...
- 关于使用DB2数据库的项目后台报-420错误码的问题
### Error querying database. Cause: com.ibm.db2.jcc.am.SqlDataException: DB2 SQL Error: SQLCODE=-4 ...
- Linux.centos安装mysql5.7.18
一:删除已有的mysql步骤 1 卸载旧的mysql 1.1 查询有哪些mysql文件 [root@zookeeper init.d]# find / -name mysql /var/lock/su ...
- 一步一步搭建 Oracle Data Guard
前言 为什么要写前言,因为我要吐槽一下.作为一个Java后端,搭建Oracle Data Guard真的是一件,嗯,既不专业也不擅长的事情,然而,为什么还是要我来弄? 因为DBA出差了,我们这边急着要 ...
- C#通过反射调用类及方法
反射有个典型的应用,就是菜单的动态加载,原理就是通过反射调用某个窗体(类).下面演示一下通过反射调用类及方法: 1.新建一个类,命名为:ReflectionHelper,代码如下: #region 创 ...