C# 初始化设定项可以为LINQ查询中的匿名类型进行属性的初始化

由于LINQ查询返回的集合中匿名类型的属性都是只读的,如果需要为匿名属性赋值,只能通过初始化设定项来进行。初始化设定项还能为属性使用表达式。

 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         List<Person> personList = new List<Person>()
 6         {
 7             new Person(){Name="Rose",Age=18},
 8             new Person(){Name="Mike",Age=25},
 9             new Person(){Name="john",Age=18}
10         };
11         var items = from p in personList
12                     select new { p.Name, AgeScope = p.Age > 20 ? "Old" : "Young" };
13         foreach (var item in items)
14         {
15             Console.WriteLine(string.Format("{0}:{1}", item.Name, item.AgeScope));
16         }
17         Console.Read();
18     }
19 }
20 class Person
21 {
22     public string Name { get; set; }
23     public int Age { get; set; }
24 }

这段代码在LINQ查询中创建了一个匿名类型,该类型含有属性Name和AgeScope。

 

参考:《编写高质量代码改善C#程序的157个建议》陆敏技

posted @ 2020-06-21 17:04  XXXUJIA  阅读(280)  评论(0编辑  收藏  举报