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

如何使用LINQ方法或查询语句从TabA表中获取满足(col2,col3)匹配L2int列表元素的col1值

用LINQ筛选TabA中符合条件的col1值

我来帮你搞定这个需求,这里有两种实用的LINQ实现方式,都能得到你要的List<int>结果:

方法1:Join操作(性能优先)

如果你的L2int列表元素比较多,推荐用Join——它会先构建哈希表做快速匹配,比遍历检查的效率高不少。

假设L2int是值元组列表(就像你给的示例((1,2),(2,3))),代码如下:

// 示例L2int定义
var L2int = new List<(int c1, int c2)> { (1, 2), (2, 3) };

// 执行筛选
var result = TabA
    .Join(
        L2int,
        tabRow => new { tabRow.col3, tabRow.col2 }, // TabA的匹配键:col3对应L2int的c1,col2对应c2
        listItem => new { listItem.c1, listItem.c2 }, // L2int的匹配键
        (tabRow, _) => tabRow.col1 // 提取需要的col1值
    )
    .ToList();

如果L2int是自定义类(比如有C1和C2属性),只要把listItem.c1换成listItem.C1、listItem.c2换成listItem.C2就行。

方法2:Any()方法(代码更直观)

要是L2int元素不多,用Any()的写法会更直白,一眼就能看懂逻辑:

var L2int = new List<(int c1, int c2)> { (1, 2), (2, 3) };

var result = TabA
    .Where(tabRow => L2int.Any(item => item.c1 == tabRow.col3 && item.c2 == tabRow.col2))
    .Select(tabRow => tabRow.col1)
    .ToList();

核心逻辑说明

简单说就是:我们要找TabA里那些行,它的col3等于L2int某个元素的c1,同时col2等于该元素的c2——也就是(col2, col3)这个组合,对应存在于L2int的(c2, c1)组合里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:17:29