gpt4 book ai didi

linq - 在 linq 中加入问题

转载 作者:行者123 更新时间:2023-12-04 06:44:53 24 4
gpt4 key购买 nike

我有以下表格

T1    
==== ======
ID Desc
==== ======
1 t1
2 t2
3 t3
4 t4


T2
===== ======= ========
ID T1ID PT1ID
===== ====== =========
1 2 1
2 3 2

在 T2 中,T1ID 和 PT1ID 都是 T1 的外键。在我的输出中,我想要 ID=4 的行,因为它在两个外键列中都没有任何匹配的行

最佳答案

这应该是你想要的:

var notInT2 = T1.Where(i => T2.All(e => e.T1ID != i.Id) &&
T2.All(e => e.PT1ID != i.Id));

要测试它:
class RowT1 { public Int32 Id;}
class RowT2 { public Int32 T1ID; public Int32 PT1ID; }

class Programm
{
static void Main()
{
var T1 = new List<RowT1>(){new RowT1(){Id=1},
new RowT1(){Id=2},
new RowT1(){Id=3},
new RowT1(){Id=4}};

var T2 = new List<RowT2>(){new RowT2(){T1ID=2, PT1ID=1},
new RowT2(){T1ID=3, PT1ID=2}};

var notInT2 = T1.Where(i => T2.All(e => e.T1ID != i.Id) &&
T2.All(e => e.PT1ID != i.Id));

Console.ReadLine();
}
}

关于linq - 在 linq 中加入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3854053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com