我有一個包含重複的列表,我想創建一個顯示他們排名的輸出。例如tom在頂部,因爲他有100個條目,lilly在底部,因爲它有0個。顯示大多數發生在等級順序中#
是否可以顯示一個列表,列表中列出了列表中的列表,並且列表中列出了他們出現在列表中的列表的次數?
還顯示它們在它們旁邊顯示的次數?
我有一個包含重複的列表,我想創建一個顯示他們排名的輸出。例如tom在頂部,因爲他有100個條目,lilly在底部,因爲它有0個。顯示大多數發生在等級順序中#
是否可以顯示一個列表,列表中列出了列表中的列表,並且列表中列出了他們出現在列表中的列表的次數?
還顯示它們在它們旁邊顯示的次數?
var query = File
.ReadLines("input.txt")
.GroupBy(x => x)
.Select(g => new { Key = g.Key, Count = g.Count() })
.OrderByDescending(i => i.Count)
.Take(20);
foreach (var item in query)
{
Console.WriteLine("{0,5} {1}", item.Count, item.Key);
}
是否可以顯示結果的前20行? – Evildommer5
@ Evildommer5:是的。我已經擴展了我的答案。 – dtb
這不能編譯。不要在System.IO – Evildommer5
var groups = list.GroupBy(item => item);
var orderedGroups = groups.OrderByDescending(group => group.Count());
foreach (var group in orderedGroups)
{
Console.WriteLine(string.Format("{0} - {1}", group.Key, group.Count());
}
VC 74-我收到一個錯誤說,鏈接不會出現在當前的上下文中。有什麼建議麼? – Evildommer5
@ Evildommer5,請爲System.Linq添加一個使用。 –
以下將給出IEnumerable
其中每個項目包含來自組的代表性項目及其發生次數。
myList
.GroupBy(item => item.Name)
.OrderByDescending(g => g.Count())
.Select(g => new {item=g.First(), numOcurrences=g.Count())
這裏有一個簡單的LINQ查詢遠程做到這一點。
List<string> list = new List<string> { "a", "b", "a", "c", "a", "d", "c" };
var counts = from item in list
group item by item
into grp
orderby grp.Count() descending
select new
{
Value = grp.Key,
Count = grp.Count()
};
foreach (var item in counts)
Console.WriteLine("{0} ({1})", item.Value, item.Count);
你使用什麼樣的數據結構?這可以通過許多方式完成;最簡單的可能是使用「桶排序」來處理這種類型的東西。 – bchurchill
「和莉莉在底部,因爲它有0」:現在這真的讓我的心靈... – Zruty
禮來只出現過一次,但湯姆出現100次所以實際上我想要統計它出現的次數並顯示它們在那個等級。 – Evildommer5