Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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# 专家们:什么';这代码有什么区别?_C#_.net_Arrays_C# 3.0_Generics - Fatal编程技术网

C# 专家们:什么';这代码有什么区别?

C# 专家们:什么';这代码有什么区别?,c#,.net,arrays,c#-3.0,generics,C#,.net,Arrays,C# 3.0,Generics,我这样问是因为我在使用泛型表单时遇到了一个错误“ArgumentOutOfRange” List<WaitHandle> arraywaithandles = new List<WaitHandle>(4); 这项工作: for (int i = 0; i < 4; i++) { A[i] = (arrayresultados[i].AsyncWaitHandle); } for(int

我这样问是因为我在使用泛型表单时遇到了一个错误“ArgumentOutOfRange”

  List<WaitHandle> arraywaithandles = new List<WaitHandle>(4);
这项工作:

       for (int i = 0; i < 4; i++)
        {
            A[i] = (arrayresultados[i].AsyncWaitHandle);
        }
for(int i=0;i<4;i++)
{
A[i]=(arrayresultados[i].AsyncWaitHandle);
}
这不起作用:

       for (int i = 0; i < 4; i++)
        {
            arraywaithandles[i] = (arrayresultados[i].AsyncWaitHandle);
        }
for(int i=0;i<4;i++)
{
arraywaithandles[i]=(arrayresultados[i].AsyncWaitHandle);
}
这是:

new List<WaitHandle>(4);
创建一个包含4个WaitHandles的数组,该数组将在上述行结束时存在。

此:


创建一个包含4个WaitHandles的数组,该数组将在上述行结束时存在。

是否要尝试此操作:

for (int i = 0; i < 4; i++)
{
    arraywaithandles.Add(arrayresultados[i].AsyncWaitHandle);
}
for(int i=0;i<4;i++)
{
添加(arrayresultados[i].AsyncWaitHandle);
}

您想尝试以下方法:

for (int i = 0; i < 4; i++)
{
    arraywaithandles.Add(arrayresultados[i].AsyncWaitHandle);
}
for(int i=0;i<4;i++)
{
添加(arrayresultados[i].AsyncWaitHandle);
}
试试这个

List<WaitHandle> arraywaithandles = 
    Enumerable.Repeat<WaitHandle>(null, 4).ToList();
List arraywaithandles=
可枚举的.Repeat(null,4.ToList();
试试这个

List<WaitHandle> arraywaithandles = 
    Enumerable.Repeat<WaitHandle>(null, 4).ToList();
List arraywaithandles=
可枚举的.Repeat(null,4.ToList();

因此,让我们改变问题:有没有一种方法可以表达一般形式如下:WaitHandle[]a=新的WaitHandle[4];我问这个问题,因为我只能看到capacity属性,属性计数是只读的。这样,我不想为N个元素分离内存,我想创建一个包含N个元素的集合。谢谢。@ludicode:如果您还有其他问题,最好将其作为有关堆栈溢出的另一个问题提问。@ludicode:如果您知道您需要4个WaitHandles,不多也不少,那么只需使用数组即可。如果您想要一个WaitHandle集合,可以在其中添加和删除项,请使用该列表。因此,让我们将问题更改为:是否有一种方法可以将通用形式表示为:WaitHandle[]a=新的WaitHandle[4];我问这个问题,因为我只能看到capacity属性,属性计数是只读的。这样,我不想为N个元素分离内存,我想创建一个包含N个元素的集合。谢谢。@ludicode:如果您还有其他问题,最好将其作为有关堆栈溢出的另一个问题提问。@ludicode:如果您知道您需要4个WaitHandles,不多也不少,那么只需使用数组即可。如果您想要一个WaitHandles集合,可以在其中添加和删除项,请使用该列表。