2017-01-09 61 views
-7

我收到了一個List<>,裏面有5k個字。如何從C#中的列表返回頻繁/最高重複單詞?

var abc = new List<ClassName>(); 

我想從List<>檢索頻繁/最高重複的字,並將其返回。思考?

public class Datum 
    { 
     public string name { get; set; } 
     public string id { get; set; } 
     public string pic_large { get; set; } 
    } 
+1

可以顯示'ClassName' – fubo

+0

的類定義是什麼?你試試? – Moshezaurus

+4

'GroupBy' by word,'OrderByDescending' by'Count',get'First' –

回答

1

這將讓你abc列表

var mostPopular = abc 
    .GroupBy(x => x.name) 
    .OrderByDescending(g => g.Count()) 
    .First(); 

Datum最流行的實例。如果你只想最流行的追加Select對年底

var mostPopularName = abc 
    .GroupBy(x => x.name) 
    .OrderByDescending(g => g.Count()) 
    .First() 
    .Select(x=> x.name); 
1
name
var result = abc 
    .GroupBy(x => x.name) 
    .OrderByDescending(grouped => grouped.Count()) 
    .First(); 

LINQ曲ery正在拿你的名單,把它歸爲name屬性,所以你得到的對象是:nameCollection<ClassName>

您想訂購他們按照由它的Count並採取First