LINQ根据比较选择多个项目

本文关键字:项目 选择 比较 LINQ | 更新日期: 2023-09-27 18:03:34

我试图从LINQ查询中获得一些值,但我无法编写仪式语法,这里是模型

public class ViewHistorySheetModel {
    public string SheetName { get; set; }
    public List<ViewHistoryDataModel> lData { get; set; }
    public List<CountHistoryDataModel> RData { get; set; }
}
public class CountHistoryDataModel
{
    public string RId { get; set; }
    public string RIndex { get; set; }
}

,这里是我正在尝试的代码我想让RIndex匹配RId

int Revision=1234;
var indexs = (select r.RIndex from Model.RData where r.RId= Revision);
foreach(var index in indexs)
{
// functionalty
}

LINQ根据比较选择多个项目

这样做,你的行顺序是不正确的,也有一些语法错误:

var indexs = (from r in Model.RData 
              where r.RId == Revision
              select r.RIndex);

和现在迭代:

foreach(var index in indexs)
{
// do something
}

也可以这样使用lambda表达式:

var indexs = Model.RData.Where(r=>r.RId == Revision).Select(r => r.Index);

你可以在这里看到更多关于Lambda表达式的细节

更新:

虽然我的回答被接受,因为它帮助了OP,但OP做了一点修改,以获得所需的结果。这里是:

var indexs = (from r in Model.SelectMany(c => c.RData) 
              where r.RId == revision.RevisionID 
              select r.RIndex);