C# 初始化設定項可以為LINQ查詢中的匿名型別進行屬性的初始化
阿新 • • 發佈:2020-06-22
由於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個建議》陸敏技