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

在C#(EF Core+Linq)中如何用字符串列表匹配数据库字段

解决方案

直接使用LINQ的Contains方法就能实现需求,EF Core会自动将这个操作转换为SQL的IN子句,写法简洁且能保证查询效率。

正确代码示例

List<string> ImageFormats = new List<string>
{
    "png",
    "jpg",
    "jpeg",
    "tiff",
    "gif"
};

var results = _database.Documents
    .Where(d => ImageFormats.Contains(d.Extension))
    .ToList();

额外注意事项

  • 大小写匹配问题:如果数据库中Extension字段的存储大小写不固定(比如同时存在PNG和png),可以统一转换为小写后再匹配:

    var results = _database.Documents
        .Where(d => ImageFormats.Contains(d.Extension.ToLowerInvariant()))
        .ToList();
    

    也可以提前确保ImageFormats列表的内容和数据库存储的大小写完全一致。

  • 空值处理:如果Extension字段可能存在null值,且你不需要匹配这类数据,可以额外添加空值判断:

    var results = _database.Documents
        .Where(d => d.Extension != null && ImageFormats.Contains(d.Extension))
        .ToList();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:25:28