VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > C#编程 >
  • C#教程之C#中获取多个对象list中对象共有的属性项

本站最新发布   C#从入门到精通
试听地址  
https://www.xin3721.com/eschool/CSharpxin3721/

场景

有一组数据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 > 0)
                        {
                            autxColumnsList.Add(dataList.AutxColumns);
                        }
                        else
                        {
                            isAllHaveAut = false;
                        }

                        if (dataList.AuvxColumns != null && dataList.AuvxColumns.Count > 0)
                        {
                            autvColumnsList.Add(dataList.AuvxColumns);
                        }
                        else
                        {
                            isAllHaveAuv = false;
                        }

                        if (dataList.BmsColumns != null && dataList.BmsColumns.Count > 0)
                        {
                            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
复制代码

 

博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
相关教程