gpt4 book ai didi

c# - 使用类中的一个变量将输出列表输出到数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:21 25 4
gpt4 key购买 nike

我正在玩列表以更好地理解它们。我可以将特定类变量输出到列表选择以压缩以下代码吗?

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

private string OperationsMembers
{
get
{
List<POPSUser> UniqueList = DB.OperationsTeam.UserEmail.Distinct().ToList();
return string.Join(";", UniqueList);
}
}

预期输出:adam@my.domain; carol@my.domain; bill@my.domain

这是当前的工作代码,但我认为我不需要创建另一个列表并使用 foreach 循环。我使用 Distinct() 是因为有些用户会在数据库查询中处于多个部门。

private string OperationsMembers
{
get
{
List<string> EmailAddressList = new List<string>();

foreach (POPSUser user in DB.OperationsTeam)
{
EmailAddressList.Add(user.UserEmail);
}

if (EmailAddressList.Count > 0)
{
List<string> UniqueList = EmailAddressList.Distinct().ToList();
return string.Join(";", UniqueList);
}
else { return ""; }
}
}

DB.OperationsTeam 是一个包含 UserID、UserName、UserEmail 等的 POPSUser 列表。

** 在有帮助的评论后更新(不知道还有什么地方可以发布有用的答案)*漂亮、干净、紧凑,谢谢大家!

private string OperationsMembers
{
get
{
return string.Join(";", DB.OperationsTeam.Select(u => u.UserEmail).Distinct());
}
}

最佳答案

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

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

旁注:您当前的工作解决方案将从数据库加载整个用户数据(即姓名、电子邮件、ID 等),并在您枚举 OperationsTeam 集时实例化用户实例。但是当你像上面那样进行投影时,它会发生在服务器端,并且会生成只加载必填字段的 SQL:

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

关于c# - 使用类中的一个变量将输出列表输出到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122047/

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