当前位置: 移动技术网 > IT编程>开发语言>c# > C#中获取多个对象list中对象共有的属性项

C#中获取多个对象list中对象共有的属性项

2019年11月15日  | 移动技术网IT编程  | 我要评论

场景

有一组数据list<testdatalist>

每一个testdatalist是一个对象,此对象可能有温度数据,也可能没有温度数据。

有温度数据的情况下,温度数据属性又是一个list,可能有温度a、b、c等不同种类。

怎样在这组list<testdatalist>找到共有的温度b。

 

 

这只是针对温度数据,如果压力和bms情况也是如此。

注:

博客主页:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

 //存储所有辅助通道温度数据的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

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网