我有一个字符串列表,由来自数据库( Entity Framework )的查询填充:
var accountIds = new List<string>();
现在我想将两个字符串列表添加到我的集合中,例如,我有这两个查询:
using (var myketDB = new MyketReadOnlyDb())
{
if (!string.IsNullOrWhiteSpace(name))
{
accountIds = myketDB.AppDevelopers
.Where(n => n.RealName.Contains(name))
.Select(e => e.Email).ToList();
}
if (!string.IsNullOrWhiteSpace(email))
{
accountIds = myketDB.Accounts
.Where(e => e.Mail.Contains(email))
.Select(e => e.Email).ToList();
}
}
因此对于此查询 accountIds
更改,我不希望这种情况发生。我想在 accountIds 中同时拥有这两个列表。像这样:
accountIds.add(//first query);
accountIds.add(//2nd query);
类似于联合的东西(我不想使用联合)。我是收藏列表的新手。非常感谢。
最佳答案
如果您想将多个项目添加到现有列表中,.AddRange
方法将为您完成此操作
accountIds.AddRange(myketDB.AppDevelopers
.Where(n => n.RealName.Contains(name))
.Select(e => e.Email).ToList());
accountIds.AddRange(myketDB.Accounts
.Where(e => e.Mail.Contains(email))
.Select(e => e.Email).ToList());
或者更简单地说,首先将查询结果收集到变量中,然后将这些结果添加到现有列表中,例如,
var appDevEmails = myketDB.AppDevelopers
.Where(n => n.RealName.Contains(name))
.Select(e => e.Email).ToList();
var accountsEmails = myketDB.Accounts
.Where(e => e.Mail.Contains(email))
.Select(e => e.Email).ToList();
accountIds.AddRange(appDevEmails);
accountIds.AddRange(accountsEmails);
进一步阅读:
关于c# - 我应该如何使用集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55990663/