2

我想将这段代码转换为 LINQ 查询,因为 LINQ 比 foreach 快得多。我不知道该怎么做,基本上可以做简单的 LINQ 查询。

我想要做的是在字典中获取一个特定的字段。

Dictionary<string, object> fieldLayout = null;
foreach (Dictionary<string, object> dic in pageLayout)
{
    if (dic[ "FIELD" ].ToString() == "123")
    {
        fieldLayout = dic;
        break;
    }
}
4

3 回答 3

3

fieldLayout = pageLayout.FirstOrDefault(dic => dic["FIELD"].ToString() == "213");

于 2012-07-30T11:44:23.173 回答
2

LINQ 几乎不比 快foreach,但这超出了这里的范围。

var fieldLayout = pageLayout.FirstOrDefault(pl => pl["FIELD"].ToString() == "123");
于 2012-07-30T11:45:11.740 回答
2

首先,LINQ 并不比 foreach 循环快。

这是实现:

Dictionary<string, object> fieldLayout = pageLayout.Where(x => x["FIELD"].ToString() == "123").FirstOrDefault();

甚至更好:

Dictionary<string, object> fieldLayout = pageLayout.FirstOrDefault(x => x["FIELD"].ToString() == "123");
于 2012-07-30T11:45:38.870 回答