linq学习笔记:将List<T> 转换为 Dictionary<T Key,T Value>

运用Linq,将List<T> 转换为 Dictionary<T Key,T Value>

即:List<T>  ToDictionary<T Key,T Value>

废话不说,看代码:

示例代码:按照性别分类

class Program
    {
        public class Student
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public int Sex { get; set; }
        }
       
 
        static void Main(string[] args)
        {
            List<Student> lstStudent = new List<Student>();
            lstStudent.Add(new Student { Name = "A1", Age = 17, Sex = 0 });
            lstStudent.Add(new Student { Name = "A2", Age = 19, Sex = 1 });
            lstStudent.Add(new Student { Name = "A3", Age = 17, Sex = 1 });
            lstStudent.Add(new Student { Name = "A4", Age = 19, Sex = 0 });
            lstStudent.Add(new Student { Name = "A5", Age = 18, Sex = 1 });
            lstStudent.Add(new Student { Name = "A6", Age = 18, Sex = 0 });
            lstStudent.Add(new Student { Name = "A7", Age = 18, Sex = 1 });
            lstStudent.Add(new Student { Name = "A8", Age = 19, Sex = 0 });
            lstStudent.Add(new Student { Name = "A9", Age = 19, Sex = 0 });

            var dicStudent = lstStudent.GroupBy(p => p.Sex).ToDictionary(p => p.Key, p => p.ToList());
            foreach (var dic in dicStudent)
            {
                Console.WriteLine("Key:{0}", dic.Key);
                foreach (var stu in dic.Value)
                {
                    Console.WriteLine("Name:{0},Age:{1}", stu.Name, stu.Sex.ToString());
                }
            }
            Console.ReadKey();
        }
    }

实际运行结果:

Key:0
Name:A1,Age:0
Name:A4,Age:0
Name:A6,Age:0
Name:A8,Age:0
Name:A9,Age:0
Key:1
Name:A2,Age:1
Name:A3,Age:1
Name:A5,Age:1
Name:A7,Age:1

轻松利用linQ

原文地址:https://www.cnblogs.com/CnKker/p/3288554.html