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 > 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 C# 對 list 中對象某個屬性排序 從List獲取集合中對象的某個屬性 獲取List中對象的屬性值 C#,關於從List或Collection中找出對象的某個屬性值與另一個list相同的全部對象 對list集合中對象的多個屬性按一定順序排序 java list中的對象,按對象某屬性排序 c#字典怎么獲取第一個鍵值 List<對象>獲取重復項,轉成Dictionary > 獲取List集合對象中某一列屬性值 C#批量修改符合特定條件的LIST中對象屬性 C# 如何判斷 List 中包含某個屬性的對象? 就是說,List 中如何判 斷是否包含某一值
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM