我已经看到很多LINQ的例子,其中包含一个简单的对象列表:
var intList= new List<int>() { 1, 2, 3 };
var result = db.TableRecords.Where(c => intList.Contains(c.RecordId)).ToList();
Run Code Online (Sandbox Code Playgroud)
我想要做的似乎稍微复杂一点(我认为).我有一行类似于这个的代码获取我需要的列表:
var xzList = db.Relations.Where(r => someOtherList.Contains(r.zId))
.Select(r => new { AId = r.xId, BId = r.zId })
.ToList();
Run Code Online (Sandbox Code Playgroud)
现在我想得到与上一个示例类似的结果,但现在列表中有一个匿名类型,有两个整数.因此,如何将我现在得到result其中RecordId在TableRecords等于AId在匿名类型中的每个匿名类型xzList?
Jon*_*son 11
听起来你不确定如何从你的匿名类型中获取值.您可以使用GunnerL3510的解决方案将其转储到列表中,或者您应该能够像这样内联它:
var result =
db.TableRecords
.Where(c => xzList.Select(n => n.AId)
.Contains(c.RecordId))
.ToList();
Run Code Online (Sandbox Code Playgroud)
由于您在匿名类型中命名值,因此您可以像属性一样引用它们.
如果您更喜欢采用更结构化的方法,则可以使用此方法.
| 归档时间: |
|
| 查看次数: |
28352 次 |
| 最近记录: |