运用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) { ListlstStudent = new List (); 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:0Name:A1,Age:0Name:A4,Age:0Name:A6,Age:0Name:A8,Age:0Name:A9,Age:0Key:1Name:A2,Age:1Name:A3,Age:1Name:A5,Age:1Name:A7,Age:1
轻松利用linQ