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 ...
随机推荐
- 3.Android-ADT之helloworld项目结构介绍
1.helloworld项目结构如下图所示: src 放项目的源代码的.而MainActivity.java文件则对应helloworld界面代码,代码如下所示: gen BuildConfig.ja ...
- 解决“fatal: 'origin' does not appear to be a git repository...”
当使用Git进行代码push提交时,出现报错信息“fatal: 'origin' does not appear to be a git repository...”, $ git push -u o ...
- 使用VMware安装CentOS 7
环境:Windows10 , VMware Workstation 15 Player, CentOS 7 为什么选择CentOS ? 主流: 目前的Linux操作系统主要应用于生产环境,主流企业级L ...
- Pikachu-File Inclusion, Unsafe file download & Unsafe file upload
Pikachu-File Inclusion, Unsafe file download & Unsafe file upload 文件包含漏洞 File Inclusion(文件包含漏洞)概 ...
- .Net Core WebApi 模型验证无效时报400
问题 模型验证无效时,没有进入到接口里,而是直接报400 Bad Request,非常不友好. 环境 SDK:.Net Core 2.2.401 开发工具:VS2017 step 1 创建接口 /// ...
- ConcurrentHashMap源码走读
目录 ConcurrentHashMap源码走读 简介 放入数据 容器元素总数更新 容器扩容 协助扩容 遍历 ConcurrentHashMap源码走读 简介 在从JDK8开始,为了提高并发度,Con ...
- Windows服务安装批处理命令
Install.bat: @echo off "%~dp0InstallUtil\InstallUtil.exe" "%~dp0DataSyncService.exe&q ...
- JVM G1垃圾回收算法简要介绍
JVM G1垃圾回收算法简要介绍 G1的特点 能够像CMS垃圾回收算法一样并发操作应用线程(潜台词:多核) 无需太长时间即可压缩空闲内存空间(潜台词:不会引起太多的GC停顿时间) 尽可能地让GC时长可 ...
- ASP.NET底层原理
上图基本上演示了IIS 6整个处理过程.在User Mode下,http.sys接收到一个基于aspx的http request,然后它会根据IIS中的Metabase查看该基于该Request的Ap ...
- mysql创建用户后无法进入
说明 在mysql中添加用户: #mysql -u root -p >use mysql: >update user set password="" where use ...