我有一个字符串列表,这些字符串由数据库(实体框架)中的查询填充:
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);
类似工会的东西(我不想使用工会)。我是收藏列表的新手。非常感谢。
答案 0 :(得分:4)
如果您想将多个项目添加到现有列表中,那么.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);
进一步阅读: