ToLookup方法


1、必须是实现了IEnumerable接口对象才可以调用该方法,通过ToLookup方法,返回的是ILookup>  对象,

筛选KeyValuePair集合里符合条件的新的数据,并且生成新的集合以类型T1为key,KeyValuePair 为值。

访问这个这个值是可以用索引访问 lookup[“T1”],访问key可以遍历元素时候,用 元素的key来访问。

另外:ILookup ,是一个key可以对应多个内容的。

如下例子



 Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("1", "a");
            dic.Add("2", "b");
            dic.Add("3", "c");
            dic.Add("4", "a");
            ILookup<string,KeyValuePair<string,string>> lookups = dic.ToLookup(a => a.Value);
            foreach(var i in lookups["a"])
                Console.WriteLine(i);
            foreach(var i in lookups)
            {
                Console.WriteLine(i.Key);
            }


            List list = new List() { new person("a",1),new person("b",2),new person("c",3)};
             ILookup<int,person> ilookup = list.ToLookup(a => (a.name == "a" || a.name == "b") ? a.age : -1);
            foreach(var item in ilookup)
            {
                Console.WriteLine(item.Key );
                Console.WriteLine(ilookup[item.Key]);
                  foreach(var item1 in ilookup[item.Key])
                 {
                      Console.WriteLine(item1.name);
                 }
            }
            foreach (person item in ilookup[1])
            {
                Console.WriteLine(item.name);
                // Console.WriteLine(ilookup[item]);
            }
C