简体   繁体   English

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

[英]How C# SortedList get key by value?

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

How can I get the key by value? 如何按价值获得密钥?

For example: Get the item key "zh-CN" 例如:获取项目键“zh-CN”

If you would like to get the key from a value, you may use SortedList.IndexOfValue(object value) to get the index of the value you specify. 如果要从值获取键,可以使用SortedList.IndexOfValue(object value)来获取指定值的索引。 Then, use SortedList.GetKey(int index) to return a key as object from the value's index we just gathered. 然后,使用SortedList.GetKey(int index)从我们刚刚收集的值索引返回一个键作为object

Example

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

Thanks, 谢谢,
I hope you find this helpful :) 我希望这个对你有用 :)

There's probably a better way to do this, but here's one way to do it: 可能有更好的方法来做到这一点,但这是一种方法:

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

Looking the key from Value would be not efficient and defeats the purpose of sorted List. 从Value中查找关键字将无效并且无法实现排序List的目的。 Sorted list is really a sorted Dictionary named confusingly as SortedList. 排序列表实际上是一个排序的字典,名为混乱的SortedList。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM