2015-04-23 44 views
0

GroupBy創建我要排序的對象列表的列表。我只需要在第一個元素中的每個列表訪問列表中的第一個對象列表

List<string> topFive = listOfObjects.GroupBy(x=>x.names).OrderByDescending(x=>x.Count())... 

好了,我有對象的列表,由有多少個對象在每個列表降序排列。我需要從每個列表中檢索1個對象,即我需要檢索每個嵌套列表中的第一個對象,並將其放入一個新列表中,以便我可以選擇.names屬性

混淆來自於GroupBy創建一個列表,列表中有多個對象,其中該列表位於外部列表的元素中。所以我需要從每個NESTED列表中提取1個對象

我一直在掃描最近2個小時的堆棧溢出,並且沒有找到相關答案的關鍵字。

這是我最好的猜測,但不實際工作

List<string> topFive = listOfObjects.GroupBy(x => x.names).OrderByDescending(x => x.Count()).Select(x => x.Select(y => y.names)); 
+0

有人可以幫忙嗎? SelectMany是否正在上班?我不知道如何使用它,它不讓我訪問對象上的屬性... –

+0

'List topFive = listOfObjects.GroupBy(x => x.names).OrderByDescending(x = > x.Count())。SelectMany(x => x.Select(y => y.names).Take(5))。ToList ();' 這是就我所知,這仍然不起作用,但是這是更多沿着我需要的軌道 –

回答

2

你試過:

topFive.First().names 
+0

這不起作用沒有.names屬性列表。 .First()只引用列表中的第一個列表 –

+0

group by創建一個我正在排序的對象列表。我只需要每個列表中的第一個元素 –

0
List<string> topFive = listOfObjects.GroupBy(x => x.names).OrderByDescending(x => x.Count()).SelectMany(x => x.Select(y=>y.names).Distinct()).Take(5).ToList(); 

又想通了我自己的答案。

選擇許多選項是從列表中的每個對象中選擇名稱,並且只將不同的名稱提取到新列表中,並將前5個列表添加到新列表中。

相關問題