Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 迭代IList<;哈希表>;ASP.NET MVC中的按索引_C#_Asp.net Mvc - Fatal编程技术网

C# 迭代IList<;哈希表>;ASP.NET MVC中的按索引

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时遇到一些问题。我试图通过索引对其进行迭代,即:

我有一个
IList
,里面有3个不同的
哈希表。我想通过
IList
的索引对每个人进行
foreach
。例如:

我想首先在
IList
index=0中的
Hashtable
中的
foreach
all
KeyValuePair
s。完成后,执行一些操作,然后在
IList
index=1中的
foreach
all
KeyValuePair
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的答案,虽然令人沮丧,但却令人沮丧。如果没有进一步的解释,你觉得答案没有用,那么适当的办法是投反对票,而不是投删除票。