我应该如何使用 collection?

How should i use collection?

我有一个字符串列表,由来自数据库(实体框架)的查询填充:

 var accountIds = new List<string>();

现在我想向我的 collection 添加两个字符串列表,例如,我有这两个查询:

 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);

类似于联合的东西(我不想使用联合)。我是 collection 列表的新手。非常感谢。

如果您想将多个项目添加到现有列表,那么 .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);

进一步阅读:

List.AddRange(IEnumerable) Method