我需要使用从sql中提取的列表,列表是从
构建的 Dictionary<Int32, String> measurementTypes = this.GetIndicatorTypes(MeasurementTypeFilter.All);
是一种使用字符串来检索密钥的方法。 像
这样的东西TypeID = measurementTypes.contains("GEN");
答案 0 :(得分:3)
嗯,它会很慢(即O(n)),但你可以这样做:
var keys = measurementTypes.Where(pair => pair.Value == "GEN")
.Select(pair => pair.Key);
这将为您提供具有给定值的对的序列。可能有0,1或多个匹配。从那里你可以选择第一个匹配的密钥等 - 无论你需要什么。如果您认为至少有一个或恰好一个,则使用First
或Single
是合适的;如果没有匹配,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()