C#SortedList如何按值获取密钥?

时间:2012-12-10 04:45:04

标签: c# sortedlist

有一个SortedList

slLanguage = new SortedList();
slLanguage.Add("Bahasa","id-ID");
slLanguage.Add("Chinese Simplified(中文简体)","zh-CN");
slLanguage.Add("Chinese Traditional(中文繁體)","zh-TW");      
slLanguage.Add("Kazakh","kk-KZ");
slLanguage.Add("Russian(русский)","ru-RU");
slLanguage.Add("Vietnamese(Việt)","vi-VN");
slLanguage.Add("English", "en-US");

如何按值获取密钥?

例如:获取项目键“zh-CN”

3 个答案:

答案 0 :(得分:11)

如果您想从值中获取密钥,可以使用SortedList.IndexOfValue(object value)获取指定值的索引。然后,使用SortedList.GetKey(int index)从我们刚收集的值索引中返回一个密钥object

示例

SortedList slLanguage = new SortedList(); //Initializes a new SortedList of name slLanguage
//Add the keys and their values to the list
slLanguage.Add("Bahasa", "id-ID");
slLanguage.Add("Chinese Simplified(中文简体)", "zh-CN");
slLanguage.Add("Chinese Traditional(中文繁體)", "zh-TW");
slLanguage.Add("Kazakh", "kk-KZ");
slLanguage.Add("Russian(русский)", "ru-RU");
slLanguage.Add("Vietnamese(Việt)", "vi-VN");
slLanguage.Add("English", "en-US");
//
object returnedKey = slLanguage.GetKey(slLanguage.IndexOfValue("zh-CN")); //Gets the key from zh-CN as returnedKey of type object

谢谢, 我希望你觉得这很有帮助:)

答案 1 :(得分:1)

这可能是一种更好的方法,但这是一种方法:

int index = slLanguage.IndexOfValue("zh-CN");
var item = slLanguage.GetKey(index);

答案 2 :(得分:0)

从Value中查找密钥效率不高并且无法实现排序List的目的。排序列表实际上是一个排序的字典,名为混乱的SortedList。