gpt4 book ai didi

c# - LINQ - .Select(n => n.Name) 和 .Select(n => new { n.Name } ) 之间的区别;

转载 作者:太空狗 更新时间:2023-10-29 22:03:59 24 4
gpt4 key购买 nike

我是 Linq 的新手,想知道您是否可以帮助我理解以下 Linq 之间的区别?例如……

//normal select
var contacts = entity.Contacts.Select(n => n.FirstName);

//select new
var contacts2 = entity.Contacts.Select(n => new { n.FirstName });

//normal select output
foreach (var c in contacts)
Response.Write(c + "<br/>");

//select new output
foreach (var c in contacts2)
Response.Write(c.FirstName + "<br/>");

我能看到的唯一区别是,在普通选择中,名字(字符串)存储在集合中,而在新选择中,联系人对象存储在集合中,名字由其属性访问。此外,select new 返回仅在语句中选择的属性。

我注意到的另一个区别是您可以在选择新的时返回多个特定属性。

在什么情况下你会选择其中之一?

感谢您的帮助。

最佳答案

n => n.FirstName 给你一个 string

n => new { n.FirstName } 给你一个 anonymous type ,带有一个名为 FirstName

string 属性

一般来说,只有一个属性的匿名类型可能不是您想要的,所以我会选择第一个选项。

关于c# - LINQ - .Select(n => n.Name) 和 .Select(n => new { n.Name } ) 之间的区别;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7620957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com