LINQ根据比较选择多个项目

时间:2014-05-16 05:27:14

标签: c# linq asp.net-mvc-2

我试图从LINQ查询中获取一些值,但我无法在这里编写rite语法代码模型

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
}

1 个答案:

答案 0 :(得分:1)

这样做,你的行排序不正确,语法错误很少:

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);

您可以看到更多详情Here for Lambda Expressions

<强>更新:

虽然我接受了答案,因为它帮助了OP,但OP做了一些修改以获得理想的结果。这就是:

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