我有一個List<Dictionary<String, String>> dictionaries
。每個詞典將包含以下鍵 - WAP
,SystemCode
和SubSystemCode
。 A System
屬於WAP
,並且Subsystem
屬於System
。您可能會看到數據的例子是這樣的:使用linq/lambdas獲取不同列表的最快方法
WAP | System | Subsystem
-------------------------
01 | 01 | 01
01 | 02 | 02
02 | 01 | 01
02 | 01 | 02
02 | 03 | 02
03 | 02 | 01
我基本上是想獲得如下:
的所有WAP代碼的不同列表。
我認爲
var waps = dictionaries.Select(d => d["WAP"]).Distinct();
應該爲此工作。每個WAP代碼的所有系統代碼的清單。
下面應該工作:
var dictionaryGroups = dictionaries.GroupBy(d => d["WAP"]); foreach (var dictionaryGroup in dictionaryGroups) { var wapNo = dictionaryGroup.Key; var systemCodes = dictionaryGroup.Select(d => d["SystemCode"]).Distinct(); ... }
,用於每個WAP代碼中的每個系統代碼的所有子系統代碼的不同列表。
不確定這件事。
有人可以幫我解決最後一個問題嗎?如果還有更好的方法來完成前兩項,請隨時告訴我。
所以要:爲WAP /系統的每個組合,給我各子系統?你想把WAP /系統作爲結果的一部分嗎? –
是的,這將是有益的,因爲我需要這些值進行搜索。 – link664
匿名類型自動實現'Equals()'和'GetHashCode()',所以如果你使用'GroupBy(d => new {WAP = d [「WAP」],SystemCode = d [「SystemCode」]})'最後一個應該類似於第二個。 – millimoose