gpt4 book ai didi

c# - 带有 Contains 的 LINQ Where 子句,其中列表具有复杂对象

转载 作者:太空狗 更新时间:2023-10-29 17:46:43 26 4
gpt4 key购买 nike

我见过很多 LINQ 示例,其中包含一个简单的对象列表:

var intList= new List<int>() { 1, 2, 3 };
var result = db.TableRecords.Where(c => intList.Contains(c.RecordId)).ToList();

我正在尝试做的事情似乎稍微复杂一些(我认为)。我有一行与此类似的代码可以得到我需要的列表:

var xzList = db.Relations.Where(r => someOtherList.Contains(r.zId))
.Select(r => new { AId = r.xId, BId = r.zId })
.ToList();

现在我想得到与前面示例类似的结果,但列表中现在有一个带有两个整数的匿名类型。那么我现在如何获得 result,其中 TableRecords 中的 RecordId 等于每个匿名类型的匿名类型中的 AIdxzList?

最佳答案

听起来您不确定如何从匿名类型中获取值。您可以使用 GunnerL3510 的解决方案将其转储到列表中,或者您应该能够像这样内联它:

var result = 
db.TableRecords
.Where(c => xzList.Select(n => n.AId)
.Contains(c.RecordId))
.ToList();

由于您在匿名类型中命名值,因此您可以像引用属性一样引用它们。

如果您更喜欢采用更结构化的方法,可以使用 this方法。

关于c# - 带有 Contains 的 LINQ Where 子句,其中列表具有复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061935/

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