You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将List<UserTable>转为仅含邮箱的List<string>(一行代码实现)

解决方案:一行提取邮箱列表

你可以直接使用LINQ的Select操作符做投影,结合异步查询,一行代码就能完成从UserTable集合中提取邮箱并转换为List<string>的需求,无需手动循环:

public async Task<IEnumerable<string>> GetUsersAsStringBysearch(string userSearch)
{
    // 直接通过Select投影提取Email,一步得到List<string>
    return await riskDBContext.UserTables
        .Where(e => e.Email.Contains(userSearch))
        .Select(user => user.Email) // 只投影需要的Email字段
        .ToListAsync();

    // 启用全文索引时的替代写法
    // return await riskDBContext.UserTables
    //     .Where(x => EF.Functions.FreeText(x.Email, userSearch))
    //     .Select(user => user.Email)
    //     .ToListAsync();
}

关键说明

  • Select(user => user.Email)会将查询结果直接转换为Email字段的序列,避免了先加载完整UserTable实体再循环提取的冗余操作
  • EF Core会把这个查询转换为只查询Email列的SQL语句,相比原写法能减少数据传输量,提升性能
  • 全程保持异步特性,不会阻塞线程

内容的提问来源于stack exchange,提问作者Venkat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:40:26