Linq中的ToLookup和GroupBy进行分组

ToDictionary 和ToLookUp 都是通过 key 来找到相应的键值, ToDictionary 转换成是键值对 关系是一一对应的关系【key值是唯一的不能重复】。ToLookUp:ToLookUp类似于Dictionary<string,List>【key值可重复】.

public void LookUpAndDic()
{
    var initList = new List<LookUpModel>()
    {
        new LookUpModel(1,"男","小陈"),
        new LookUpModel(1,"男","小陈爸爸"),
        new LookUpModel(2,"女","小刘"),
        new LookUpModel(2,"女","小刘妈妈"),
        new LookUpModel(3,"男","小明"),
    };

    var lookTest1 = initList.ToLookup(x => x.Index);//以Index为分组
    var lookTest2 = initList.ToLookup(x => x.Index, x => x.Sex + x.Name);//以Index为分组,Sex+Name为值

    var dicTest1 = initList.ToDictionary(x => x.Name);//以Name为分组
    var dicTest2 = initList.ToDictionary(x => x.Name, x => x.Sex);//以Name为分组,Sex为值
}


public class LookUpModel
{
    public LookUpModel(int index, string sex, string name)
    {
        Index = index;
        Sex = sex;
        Name = name;
    }

    public int Index { get; set; }

    public string Sex { get; set; }

    public string Name { get; set; }
}

Linq中的ToLookup和GroupBy进行分组