我有一个使用ElementAt()方法的Dictionary<int, DataRow>。在.NET 3.5及更高版本中,它运行良好。但是,我的ISP似乎正在运行某些.NET 3.5以前的版本,而该版本不了解该方法,从而导致以下错误:


  编译器错误消息:CS0117:'System.Collections.Generic.Dictionary '不包含'ElementAt'的定义


我需要使用ElementAt的原因是因为我想选择随机的字典元素,然后删除该元素,直到所有元素随机显示为止

                int key = testimonialDictionary.ElementAt(rnd).Key;
... do something with the Value / DataRow
                testimonialDictionary.Remove(key);


我的问题是,人们在ElementAt()之前使用了什么?我该如何实施?

最佳答案

我相信这将是实现它的简单方法

string ElementAt(Dictionary<string,string> dict, uint index)
{
    if(dict.Count > index)
    {
        uint iCnt =0;
        foreach(KeyValuePair<string,string> val in dict)
        {
            if(index == iCnt)
                return val.Key;
            iCnt++;
            if(index < iCnt)
               return null;
       }
   }
   return null;
}


测试一下

Dictionary<string,string> dict = new Dictionary<string,string>{{"A","1"},{"B","2"},{"C","3"},{"D","4"},{"E","5"}};

for(uint i=0;i<5;i++)
    Console.WriteLine(ElementAt(dict,i));

关于c# - .NET 3.5之前的Dictionary中的ElementAt方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27913182/

10-09 22:07