我有一个使用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/