[英]How do I count the occurrence of each unique element in an array?
我有一組郵政編碼。 如何獲取陣列中每個唯一郵政編碼的列表,然后計算陣列中唯一郵政編碼的出現次數?
我看見了這個:
我有一個預感,這就是解決我的問題的方法,但是我不太了解。 有人可以告訴我這是否
這應該為您工作:
var zips = new string[] { "12345", "12345", "54321" };
var groups = zips.GroupBy(z => z);
foreach(var group in groups)
Console.WriteLine("{0} -> {1}", group.Key, group.Count());
應該給你:
12345 -> 2
54321 -> 1
driis實際上可以帶您到達那里。 我剛剛發布了此內容,以幫助說明如何枚舉組。
您應該使用Where僅選擇count == 1的條目,並使用Select列出值,然后使用ToList()返回List。
就像這樣:
List<string> uniqueZips = zips.GroupBy(z=>z).Where(z => z.Count() == 1).Select(z => z.Key).ToList();
在互聯網上搜索101個linq示例,它為您提供了許多常見示例。
GroupBy適用於IEnumerable<T>
,因此也適用於數組(數組實現IEnumerable)。 GroupBy根據密鑰對對象進行分組。 這里的關鍵是郵政編碼本身。 因此您只需傳遞一個映射到該代理的委托即可:
var zips = new string []{"8000", "9000"}
var uniqueZips = zips.GroupBy(x => x);
現在, uniqueZips
是IGrouping<string,string>
,其中鍵是郵政編碼,元素數是該郵政編碼的出現次數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.