使用LINQ查询带有Lambda表达式的IDictionary

时间:2012-07-10 16:51:42

标签: linq linq-to-entities

为什么即使字典在调试时显示正确的键/值对,也没有返回正确的字符串?

IDictionary<string, string> states = 
                   AFS.MvcApplication.UnitedStates.StateDictionary;

string stateAbbrev = 
               states.Where(x => x.Key == State).Select(x => x.Value).ToString();

2 个答案:

答案 0 :(得分:3)

您应该使用:

string stateAbbrev =  states[State]; 

答案 1 :(得分:2)

您希望使用FirstOrDefault代替ToString,因为Select的结果是IEnumerable<string>。这应该有效:

string stateAbbrev = states.Where(x => x.Key == State).Select(x => x.Value).FirstOrDefault();