C# 使用类中的一个变量列出到数组的输出

C# 使用类中的一个变量列出到数组的输出,c#,asp.net,list,C#,Asp.net,List,我在玩列表,以便更好地理解它们。我是否可以将特定的类变量输出到列表选择以压缩以下代码 这是我认为可能的 (DB.OperationsTeam。(仅从POPSUser类中选择UserEmail变量) 我认为您应该将POPSUser实体投影到电子邮件字符串。使用运算符进行投影: DB.OperationsTeam.Select(u => u.UserEmail).Distinct(); 旁注:您当前的工作解决方案将从数据库加载整个用户数据(即姓名、电子邮件、id等),并在枚举Operatio

我在玩列表,以便更好地理解它们。我是否可以将特定的类变量输出到列表选择以压缩以下代码

这是我认为可能的 (DB.OperationsTeam。(仅从POPSUser类中选择UserEmail变量)


我认为您应该将
POPSUser
实体投影到电子邮件字符串。使用运算符进行投影:

DB.OperationsTeam.Select(u => u.UserEmail).Distinct();
旁注:您当前的工作解决方案将从数据库加载整个用户数据(即姓名、电子邮件、id等),并在枚举OperationsTeam集合时实例化用户实例。但当您按上述方式进行投影时,它将发生在服务器端,并将生成只加载必填字段的SQL:

SELECT DISTINCT
   [Extent1].[UserEmail] AS [UserEmail]
FROM [dbo].[OperationsTeam] AS [Extent1]

我认为您应该将
POPSUser
实体投影到电子邮件字符串。使用运算符进行投影:

DB.OperationsTeam.Select(u => u.UserEmail).Distinct();
旁注:您当前的工作解决方案将从数据库加载整个用户数据(即姓名、电子邮件、id等),并在枚举OperationsTeam集合时实例化用户实例。但当您按上述方式进行投影时,它将发生在服务器端,并将生成只加载必填字段的SQL:

SELECT DISTINCT
   [Extent1].[UserEmail] AS [UserEmail]
FROM [dbo].[OperationsTeam] AS [Extent1]

问题是
.Distinct()
将返回“Distinct”
POPSUser
实例,这些实例可能不是您想要的。如果您想要不同的电子邮件,只需插入
选择
即可提取电子邮件值:

var UniqueList = DB.OperationsTeam
                   .Select(u => u.UserEmail)
                   .Distinct()
                   .ToList();

return string.Join(";", UniqueList);

还要注意,
ToList
不是必需的,因为
string.Join
将接受
IEnumerable
问题在于
.Distinct()
将返回可能不是您想要的“Distinct”
POPSUser
实例。如果您想要不同的电子邮件,只需插入
选择
即可提取电子邮件值:

var UniqueList = DB.OperationsTeam
                   .Select(u => u.UserEmail)
                   .Distinct()
                   .ToList();

return string.Join(";", UniqueList);

还请注意,
ToList
不是必需的,因为
string.Join
将接受一个
IEnumerable

BTWm,您不需要
ToList()
。您使用的是.NET的哪个版本?Asp.NET v4.0。关于标题,我很抱歉,我键入标题是希望查看已提出问题的结果。然后,当我在标签部分,我不记得标题。所以不要留下我在标题中标记的内容?BTWm您不需要
ToList()
。您使用的是.NET的哪个版本?Asp.NET v4.0。关于标题,我很抱歉,我键入标题是希望查看已提出问题的结果。然后,当我在标签部分,我不记得标题。所以不要留下我在标题中标注的内容?太好了!感谢您的评论和所有澄清修订;)@AdamRoof welcome:)我还添加了注释,显示了此解决方案和当前解决方案之间的巨大差异。正如Stanley所指出的,您不需要创建list.perfect!感谢您的评论和所有澄清修订;)@AdamRoof welcome:)我还添加了注释,显示了此解决方案和当前解决方案之间的巨大差异。正如Stanley所指出的,您不需要创建列表。感谢ToList的评论,只需转到一行即可!。。。是的,你在第一句话中指出的问题正是发生了什么,我是在玩不同的选项,但应该是在玩OperationsTeam结果。澄清很好,再次感谢。感谢ToList的评论,只剩下一行了!。。。是的,你在第一句话中指出的问题正是发生了什么,我是在玩不同的选项,但应该是在玩OperationsTeam结果。澄清很好,再次感谢。