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 ...
随机推荐
- before和after的操作
before和after,前者是在元素之前插入东西,后者是在元素后面插入东西,但插入的东西不仅仅只是文字而已,还有图标,以及计算器的操作. 由于两者的操作基本一样,这里以before为例 插入文字 & ...
- UWP 打开系统设置面板
由于UWP各种权限管理的比较严格,所以在执行某一个特殊的操作之前,最好先申请一下相应的权限,以便告知用户你使用了这个权限,而且可以有效的避免App崩溃. 比如你想让用户手动打开麦克风权限,那么可以执行 ...
- monkey命令解析详解
我面试时遇到过几次让背个monkey命令的,可以这样简单说一个:adb shell monkey -p(约束包名) -s 200 -v -v --throttle 300 1500000 > ...
- require与import
require 和 import,都是为了JS模块化使用.最近项目中,因为多人协同开发,出现了一个项目中同时使用了require 和 import 引入依赖的情况.正常情况下,一个项目中最好是对引入方 ...
- [转]加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用
原文链接:http://www.cnblogs.com/sochishun/p/7028056.html 加密技术通常分为两大类:"对称式"和"非对称式". 对 ...
- go笔记--json包使用
目录 Marshal Unmarshal 处理json对象 @ json包实现了json对象的编解码,参见RFC 4627.Json对象和go类型的映射关系主要通过Marshal和Unmarshal函 ...
- Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍
本项目是一个Winform应用编程框架和UI库.通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值.条 ...
- 好的js书写习惯
1:单一判断 bad if (result) { console.log("秋叶"); } if (!result) { console.log("秋叶"); ...
- 「SAP技术」A项目关联公司间退货STO流程
[SAP技术]A项目关联公司间退货STO流程 1)创建公司间退货STO单据. 如下图示的公司间退货STO 4500000572, 2),VL10B, 创建交货单. 如下图交货单号:80044918, ...
- Assets.xcassets:-1: Failed to find a suitable device for the type IBSimDeviceTypeiPad2x
Assets.xcassets:-1: Failed to find a suitable device for the type IBSimDeviceTypeiPad2x 不知道assets发生了 ...