从字典中获取特定的值

时间:2018-11-15 15:37:09

标签: c# dictionary

是否可以从字典中获取特定元素?例如,我有一个像这样的字典,我想将第三个元素获取为整数,我该怎么做?

public Dictionary<int, char> CodesOfLetters = new Dictionary<int, char>()
        {
              {260,'Ą'},
              {261,'ą'},
              {280,'Ę'},
              {281,'ę'},
              {362,'Ū'},
              {363,'ū'},
              {268,'Č'},
              {352,'Š'},
              {381,'Ž'},
              {269,'č'},
              {353,'š'},
              {382,'ž'},
              {278,'Ė'},
              {279,'ė'},
              {302,'Į'},
              {303,'į'},
              {370,'Ų'},
              {371,'ų'}
        };

1 个答案:

答案 0 :(得分:1)

当然,Dictionary<int,char>也是IEnumerable<KeyValuePair<int,char>>,因此您可以使用:

var anElement = CodesOfLetters.ElementAt(2); 

(只要文件顶部有using System.Linq。)

但是请注意,字典的顺序不能保证-如果您关心事物的顺序,则可能不希望以字典开头。


编辑。您评论说,您想要的是280-您也可以将Keys视为IEnumerable<int>,因此可以这样做:

var thirdKey = CodesOfLetters.Keys.ElementAt(2);

,具有与上述相同的警告。不能保证键的顺序。


如果您想跟踪向列表中添加项目的顺序,但又能够按键查找值,则可以创建一个类,该类将List<int>包裹在有序键列表中,和Dictionary<int,char>以便能够通过键快速查找值。