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 personList12 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 Person21 {22 public string Name { get; set; }23 public int Age { get; set; }24 }

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

 

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

相关文章