当前位置:编程学习 > C#/ASP.NET >>

如何从一个Dictionary里取得第i个key和Value?

只知道i是多少,并不知道key是什么,如何从一个Dictionary里取得第i个key和Value?有什么好的方法 --------------------编程问答--------------------

int i = 2;
Dictionary<string, Class1> cl = new Dictionary<string, Class1>();
            Class1 s1 = new Class1("张三", 25);
            Class1 s2 = new Class1("李四", 26);
            Class1 s3 = new Class1("家六", 27);
            cl.Add(s1.Name, s1);
            cl.Add(s2.Name, s2);
            cl.Add(s3.Name, s3);
int idx = 0;
            foreach (KeyValuePair<string, Class1> a in cl)
            {
if(idx==i)
//to do;
                MessageBox.Show(a.Value.Age.ToString() + "  " + a.Value.Name.ToString());
idx++;
            }
--------------------编程问答--------------------

private void button1_Click(object sender, EventArgs e)
  {
  Dictionary<string, object> objs = new Dictionary<string, object>();
  objs.Add("name","eric");
  objs.Add("age",18);
  Text(objs);
  }
  public void Text(Dictionary<string, object> objs)
  {

  Dictionary<string, object>.KeyCollection names = objs.Keys;
  string keyValue="";
  foreach (string name in names)
  {
  string value = objs[name].ToString();
  keyValue = keyValue + name + ":" + value + " ";
  }
  MessageBox.Show(keyValue);

  }
结果为:name:eric age:18 
--------------------编程问答-------------------- 可能大家理解错了我的意思了,我不要遍历,我需要直接取到值,有什么方法吗 --------------------编程问答-------------------- 不遍历怎么直接取到? --------------------编程问答-------------------- 本来就是键值对的数据结构,你要按序号来存取的话,要么,把顺序号作为key,要么就换成List吧 --------------------编程问答-------------------- dictionary不能通过索引访问只能自己控制了.
要不tolist下然后自己搞了 --------------------编程问答-------------------- KeyValuePair
Or
dictionary[key]=value --------------------编程问答-------------------- Dictionary是二叉树,你要直接得索引位的值,那你又按什么顺序来定索引呢?

或者加个List变量,保存时也在list中保存一份,就能得到index时的值了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,