我有一个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