使用LINQ查询而不是foreach循环

时间:2012-07-30 11:42:15

标签: c# .net linq

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

我要做的是在词典中获取特定字段。

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

var fieldLayout = pageLayout.FirstOrDefault(pl => pl["FIELD"].ToString() == "123");

答案 2 :(得分: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");