C# 迭代IList<;哈希表>;ASP.NET MVC中的按索引
我在迭代IList时遇到一些问题。我试图通过索引对其进行迭代,即: 我有一个C# 迭代IList<;哈希表>;ASP.NET MVC中的按索引,c#,asp.net-mvc,C#,Asp.net Mvc,我在迭代IList时遇到一些问题。我试图通过索引对其进行迭代,即: 我有一个IList,里面有3个不同的哈希表。我想通过IList的索引对每个人进行foreach。例如: 我想首先在IListindex=0中的Hashtable中的foreachallKeyValuePairs。完成后,执行一些操作,然后在IListindex=1中的foreachallKeyValuePairs中执行Hashtables,依此类推,直到所有Hashtables都被迭代。目前的代码如下: 变量data是一个ILi
IList
,里面有3个不同的哈希表。我想通过IList
的索引对每个人进行foreach
。例如:
我想首先在IList
index=0中的Hashtable
中的foreach
allKeyValuePair
s。完成后,执行一些操作,然后在IList
index=1中的foreach
allKeyValuePair
s中执行Hashtable
s,依此类推,直到所有Hashtable
s都被迭代。目前的代码如下:
变量data
是一个IList
,其中包含3个哈希表
s
foreach(数据[索引]中的哈希表rowData)
{
这里有一些代码。。。
}
我得到以下错误:
无法将“System.Collections.DictionaryEntry”类型的对象强制转换为“System.Collections.Hashtable”类型
试试这个代码
foreach(Hashtable rowData in data)
{
foreach(DictionaryEntry pair in rowData)
{
Console.WriteLine($"{pair.Key} {pair.Value}");
}
}
如果要通过索引器运算符迭代IList
:
IList数据=新列表
{
新哈希表{{“a”,“b”},
新哈希表{{“c”,“d”},{“e”,“f”},
新哈希表{{“g”,“h”},
};
然后您可以执行以下操作:
//迭代IList,但只对索引感兴趣
foreach(数据中的var索引。选择((x,idx)=>idx))
{
//遍历包含DictionaryEntry元素的哈希表
foreach(字典在数据[索引]中输入行数据)
{
WriteLine($“{rowData.Key}={rowData.Value}”);
}
}
输出将如下所示:
a = b
c = d
e = f
g = h
或者:
a = b
e = f
c = d
g = h
您是否真的使用了
哈希表
,而不是哈希集
?无论如何,Hashtable
是没有顺序的,当您遍历它时,您不能依赖它的元素以任何特定的顺序。我假设data
是您的哈希表数组,那么data[index]
是这些哈希表中的一个吗?如果你反复使用它,你会得到DictionaryEntry
s,而不是更多的Hashtables
。因此,您可能希望foreach(DictionaryEntry rowData in data[index])
整个工具都是以这种方式创建的,这就是使用Hashtable的原因。不幸的是,这不是我的选择。您是否尝试过foreach(DictionaryEntry hti in data[index])控制台。WriteLine($“{hti.Key}=>{hti.Value}”)代码>@Connell.O'Donnell:code-only的答案,虽然令人沮丧,但却令人沮丧。如果没有进一步的解释,你觉得答案没有用,那么适当的办法是投反对票,而不是投删除票。