需要在Dictionary <tkey,tvalue =“”> Class </tkey,>中使用字符串查找键

时间:2010-07-14 19:16:12

标签: c# dictionary

我需要使用从sql中提取的列表,列表是从

构建的
 Dictionary<Int32, String> measurementTypes = this.GetIndicatorTypes(MeasurementTypeFilter.All);

是一种使用字符串来检索密钥的方法。 像

这样的东西
TypeID = measurementTypes.contains("GEN");

3 个答案:

答案 0 :(得分:3)

嗯,它会很慢(即O(n)),但你可以这样做:

var keys = measurementTypes.Where(pair => pair.Value == "GEN")
                           .Select(pair => pair.Key);

这将为您提供具有给定值的对的序列。可能有0,1或多个匹配。从那里你可以选择第一个匹配的密钥等 - 无论你需要什么。如果您认为至少有一个或恰好一个,则使用FirstSingle是合适的;如果没有匹配,FirstOrDefault将返回0,如果0也可能是有效密钥,则可能不适合您。

答案 1 :(得分:0)

TypeID = measurementTypes.Values.Where(v => v.Equals("GEN")).FirstOrDefault();

答案 2 :(得分:0)

您可以使用LINQ来帮助您。

TypeID = measurementTypes.Where(kvp => kvp.Value == "GEN")
                         .Select(kvp => kvp.Key)
                         .FirstOrDefault()