场景

有一组数据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中对象共有的属性项的更多相关文章

  1. 如何在 WPF 中获取所有已经显式赋过值的依赖项属性

    原文:如何在 WPF 中获取所有已经显式赋过值的依赖项属性 获取 WPF 的依赖项属性的值时,会依照优先级去各个级别获取.这样,无论你什么时候去获取依赖项属性,都至少是有一个有效值的.有什么方法可以获 ...

  2. Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题

    Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...

  3. struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)

    JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于J ...

  4. requests从api中获取数据并存放到mysql中

    python的requests库是一个非常强大的库,requests的安装方法十分简单,用: pip install requests 即可安装requests,安装成功后: import reque ...

  5. 如何在 messager/alert/confirm等消息提示框中 获取 / 设置 嵌入 html内容中的 input[type=checkbox]等的选中状态?

    总结, 有3点: 不能/不要 在 这些消息框 / 提示框/ 对话框中的 回调函数中去写代码: 获取嵌入 内容中input.checkbox的选中状态, 因为 虽然在这些框存在的时候, 这个 check ...

  6. android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)

    final int[] location = new int[2]; view.getLocationOnScreen(location); final int[] location = new in ...

  7. java中获取接口(方法)中的参数名字(eclipse设置编译参数)(java8 javac -parameters)

    interface接口参数 jdk1.7及以前使用spring功能实现的: 注意: 1.该功能只能获取类的方法的参数名,不能获取接口的方法的参数名. public static void test() ...

  8. 【2017-06-27】Js中获取地址栏参数、Js中字符串截取

    一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" ...

  9. ASP.NET 4.0 ListView等容器控件中获取ClientID值与HTML中自动生成ID字符串不一样问题。

    ASP.NET 4.0 中 ClientIDMode的属性 可以设置获取不同ID格式的值. 项目中遇到的问题: 1.ListView1 ItemDataBound事件中,获取ClientID结果与自动 ...

  10. 在WPF的MVVM框架中获取下拉选择列表中的选中项

    文章概述: 本演示介绍怎样在WPF的MVVM框架中.通过数据绑定的方式获取下拉列表中的选中项.程序执行后的效果例如以下图所看到的: 相关下载(代码.屏幕录像):http://pan.baidu.com ...

随机推荐

  1. 03-EF Core笔记之查询数据

    EF Core使用Linq进行数据查询. 基本查询 微软提供了一百多个示例来演示查询,地址:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb98 ...

  2. LeetCode刷题总结-树篇(中)

    本篇接着<LeetCode刷题总结-树篇(上)>,讲解有关树的类型相关考点的习题,本期共收录17道题,1道简单题,10道中等题,6道困难题. 在LeetCode题库中,考察到的不同种类的树 ...

  3. 微信小程序视图层介绍及用法

    一. 视图层 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 1.1. 数据绑定 1.1.1. 普通写法 <vi ...

  4. iOS Privacy Policy

    This application respects and protects the privacy of all users who use the service. In order to pro ...

  5. Linux_crontab参数表示的意思

    *       *      *       *      * (下面的字体对应) 分     时    日    月    周 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满 ...

  6. 【30天自制操作系统】day01:内存分布图

  7. Jmeter性能测试插件jpgc的安装

    一.获取插件包 1.访问官网获取 官网地址:https://jmeter-plugins.org/install/Install/ 2.百度网盘下载 链接:https://pan.baidu.com/ ...

  8. Dubbo学习系列之十一(Dashboard+Nacos规则推送)

    中国武术,门派林立,都是号称多少代的XXX传人,结果在面对现代武术时,经常被KO秒杀,为啥,光靠宣传和口号撑门面,终究是靠不住,必须得有真货 ,得经得住考验,所以不能只说Sentinel有多好,也得给 ...

  9. WPF无边框可拖动窗体

    下面主要记录下创建无边框窗体,并且可以拖动.这种窗体主要用于弹出小窗体时. <Window x:Class="WpfApplication1.MainWindow" xmln ...

  10. postgreSQL安装教程 Windows

    Windows 上安装 PostgreSQL 这里使用 EnterpriseDB 来下载安装,EnterpriseDB 是全球唯一一家提供基于 PostgreSQL 企业级产品与服务的厂商. 下载地址 ...