c# - 我应该如何使用收藏?
问题描述
我有一个字符串列表,由数据库(实体框架)的查询填充:
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);
延伸阅读:
推荐阅读
- php - 数组 - php错误排序
- c# - Web 套接字消息大小标头
- php - 带参数的 MS Access 查询不适用于 php / sql
- excel - 将用户从列表框内容保存为 PDF 文件
- java - 何时使用 <> 和
- Java 泛型 - jquery - 在 CSS 转换结束后设置输入插入符号焦点
- typescript - 使用 JSDoc 制作 TypeScript 无需导入即可查看参考库
- java - Clob 对象数据为空
- vue.js - Vuejs this.$refs.file1.files[0] 出现错误无法读取 VueComponent.filesChange 处未定义的属性“0”
- xpath - 有 XQuery 像 SQL 这样的 AS 语句来更改返回元素名称,例如联合的