Lookup 是一個 key 可以對應到一個或是多個 value 的集合類型。Lookup 無法使用關鍵字 new 創造,只能透過 LinQ 的 ToLookup() 方法來產生。
Lookup 與 Dictionary 的差異為:
1、Dictionary 一個 key 只能對應一個 value
2、Lookup 一個 key 對應一個 group,而一個 group 中可以擁多個 value
範例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| List<(string groupName, string name)> list = new List<(string groupName, string name)>() { ("animals", "dog"), ("animals", "cat"), ("fruits", "apple"), ("cars", "bmw") };
ILookup<string, (string, string)> lookups = list.ToLookup(x => x.groupName);
foreach ((string groupName, string name) in lookups["animals"]) { Console.WriteLine($"{groupName} - {name}"); }
foreach (var group in lookups) { foreach ((string groupName, string name) in group) { Console.WriteLine($"{groupName} - {name}"); } }
|