我想将这段代码转换为LINQ查询,因为LINQ比foreach快得多。 我不知道如何去做,基本上可以做简单的LINQ查询。
我要做的是在词典中获取特定字段。
Dictionary<string, object> fieldLayout = null;
foreach (Dictionary<string, object> dic in pageLayout)
{
if (dic[ "FIELD" ].ToString() == "123")
{
fieldLayout = dic;
break;
}
}
答案 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");