我想知道如何計算鋸齒陣列中唯一值的數量。如何在鋸齒陣列中找到唯一值
我的域對象包含具有空格分隔值的字符串屬性。
class MyObject
{
string MyProperty; //e.g = "v1 v2 v3"
}
給出一個列表爲MyObject的我怎麼能確定的唯一值的數量?
以下linq代碼返回鋸齒陣列值的數組。一個解決方案是存儲一個臨時的單個數組項,循環遍歷每個鋸齒狀數組,如果值不存在,則添加它們。然後,一個簡單的計數將返回唯一的數值。但是,想知道是否有更好的解決方案。
db.MyObjects.Where(t => !String.IsNullOrEmpty(t.MyProperty))
.Select(t => t.Categories.Split(new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries))
.ToArray()
下面是一個更可讀的例子:
array[0] = { "v1", "v2", "v3" }
array[1] = { "v1" }
array[2] = { "v4", "v2" }
array[3] = { "v1", "v5" }
從所有價值的唯一項目是V1,V2,V3,V4,V5。
唯一項目的總數是。
是否有解決方案,可能使用linq,只返回唯一值或返回唯一值的數量?
只是給讀者一個參考......這個答案和馬克·拜爾斯的回答實際上是一樣的用不同的語法。根本的答案是「選擇多個」。 :) – jrista 2010-04-04 23:23:18