6

There is a 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");

How can I get the key by value?

For example: Get the item key "zh-CN"

4

4 回答 4

12

如果您想从一个值中获取键,您可以使用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

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

于 2012-12-10T04:49:44.133 回答
1

可能有更好的方法来做到这一点,但这里有一种方法:

int index = slLanguage.IndexOfValue("zh-CN");
var item = slLanguage.GetKey(index);
于 2012-12-10T04:50:13.817 回答
0

从 Value 中查找 key 效率不高,并且违背了 sorted List 的目的。排序列表实际上是一个排序字典,令人困惑地命名为 SortedList。

于 2014-08-19T06:49:18.980 回答
0

Dang,旧帖子,但我只是在寻找自己如何做到这一点。根据排序列表的大小,您可以这样做:

string value = "zh-CN"
foreach (var kvp in slLanguage)
{
    if (kvp.Value == value) return kvp.Key;
}
于 2022-02-15T18:22:37.563 回答