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

C#中如何对List<LookUP>集合编写等效SQL的LINQ查询

LINQ实现内存查找表等效SQL筛选方案

你需要的与SQL逻辑完全对齐的LINQ筛选实现如下:

基础直接查询写法

和SQL的WHERE条件逻辑一一对应,直接对内存集合调用Where方法做双字段匹配即可:

  • 对应查询LDAP下State列值的SQL:
// 等效SQL: select * from tablename where lookupschema='LDAP' and LookUpColumn ='State'
var stateLookups = lookuplist
    .Where(item => item.LookUpSchema == "LDAP" && item.LookUpColumn == "State")
    .ToList();

// 如果只需要返回查找值集合,追加Select投影即可
List<string> stateValues = stateLookups.Select(item => item.LookUpValue).ToList();
// 执行结果: ["TN", "MH", "DL"]
  • 对应查询LDAP下LANGUAGE列值的SQL:
// 等效SQL: select * from tablename where lookupschema='LDAP' and LookUpColumn ='LANGUAGE'
var languageLookups = lookuplist
    .Where(item => item.LookUpSchema == "LDAP" && item.LookUpColumn == "LANGUAGE")
    .ToList();

List<string> languageValues = languageLookups.Select(item => item.LookUpValue).ToList();
// 执行结果: ["EN", "FR"]

注意事项

  • 字符串大小写兼容:你给出的集合初始化示例中LookUpColumn赋值为全大写"STATE",但数据库示例值为"State",如果业务场景下存在字段值大小写不统一的情况,建议使用忽略大小写的比较逻辑,避免漏查数据:
var stateLookups = lookuplist
    .Where(item => 
        item.LookUpSchema.Equals("LDAP", StringComparison.OrdinalIgnoreCase)
        && item.LookUpColumn.Equals("State", StringComparison.OrdinalIgnoreCase)
    )
    .ToList();
  • 高频查询性能优化:如果该查找表的查询频次很高,每次全量遍历List的性能会随数据量上升下降,建议首次加载数据时直接构建内存索引,和数据库索引的查询效率一致:
// 系统启动拉取全量数据后,一次性构建二级字典索引
// 一级Key: LookUpSchema,二级Key: LookUpColumn,值为对应查找记录集合
var lookupMemoryIndex = lookuplist
    .GroupBy(x => x.LookUpSchema)
    .ToDictionary(
        schemaGroup => schemaGroup.Key,
        schemaGroup => schemaGroup
            .GroupBy(x => x.LookUpColumn)
            .ToDictionary(colGroup => colGroup.Key, colGroup => colGroup.ToList())
    );

// 后续查询直接按键取数据,无需遍历全集合
if (lookupMemoryIndex.TryGetValue("LDAP", out var columnMap)
    && columnMap.TryGetValue("State", out var targetRecords))
{
    List<string> stateValues = targetRecords.Select(x => x.LookUpValue).ToList();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 11:15:41