Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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#_C# 4.0_Foreach - Fatal编程技术网

C# 对象[]参数的相反顺序

C# 对象[]参数的相反顺序,c#,c#-4.0,foreach,C#,C# 4.0,Foreach,我在我的foreach循环中使用了这种语法,它按它应该的方式循环,但是有没有办法让循环从最后一个索引开始,而不是从第一个索引开始 这是我在第一个元素开始时使用的语法,但是是否可以对其进行修改,使其反向开始 foreach (BD bData in bl.NameList) { Object[] param = new Object[2]; param[0] = bData.m_Width; param[1] = bData.m_Height; DataGrid1.Rows.Insert(0, p

我在我的
foreach
循环中使用了这种语法,它按它应该的方式循环,但是有没有办法让循环从最后一个索引开始,而不是从第一个索引开始

这是我在第一个元素开始时使用的语法,但是是否可以对其进行修改,使其反向开始

foreach (BD bData in bl.NameList)
{
Object[] param = new Object[2];
param[0] = bData.m_Width;
param[1] = bData.m_Height;
DataGrid1.Rows.Insert(0, param);
}

您可以在通过
foreach
之前使用反转列表,但这不如简单地使用
for
循环并向后迭代它有效,如下所述:

您可以在通过
foreach
之前使用反转列表,但这并不像简单地使用
for
循环并向后迭代它那样有效,正如这里所描述的:

我不确定
BD
是什么数据类型,但我必须假设它是一个可索引列表(即它有一个
this[int]
属性,或者是一个
Count
GetUpperBound()
,或
长度
属性)。否则,问题“我可以按相反的顺序做吗?”是一个毫无意义的问题,因为您将处理一个具有不确定顺序的列表,该列表也具有不确定的相反顺序

因此,考虑到它是可索引的,您只需使用
for
循环,而不是
foreach

for (int i = bd.NameList.Count-1; i>=0; i--)
{
    var bData = bd.NameList[i];
    Object[] param = new Object[2];
    param[0] = bData.m_Width;
    param[1] = bData.m_Height;
    DataGrid1.Rows.Insert(0, param);
}
或者。。。如果你喜欢统计员。。。只需使用
Add(X)
而不是
Insert(0,X)
,这将附加到列表的末尾。显然,这仅在添加到
DataGridViewRowCollection
时有效,在其他情况下可能不起作用

foreach (BD bData in bl.NameList)
{
    Object[] param = new Object[2];
    param[0] = bData.m_Width;
    param[1] = bData.m_Height;
    DataGrid1.Rows.Add(param);
}

我不确定
BD
是什么数据类型,但我必须假设它是一个可索引列表(即,它有
this[int]
属性,以及
Count
GetUpperBound()
Length
属性)。否则,问题“我可以按相反的顺序做吗?”是一个毫无意义的问题,因为您将处理一个具有不确定顺序的列表,该列表也具有不确定的相反顺序

因此,考虑到它是可索引的,您只需使用
for
循环,而不是
foreach

for (int i = bd.NameList.Count-1; i>=0; i--)
{
    var bData = bd.NameList[i];
    Object[] param = new Object[2];
    param[0] = bData.m_Width;
    param[1] = bData.m_Height;
    DataGrid1.Rows.Insert(0, param);
}
或者。。。如果你喜欢统计员。。。只需使用
Add(X)
而不是
Insert(0,X)
,这将附加到列表的末尾。显然,这仅在添加到
DataGridViewRowCollection
时有效,在其他情况下可能不起作用

foreach (BD bData in bl.NameList)
{
    Object[] param = new Object[2];
    param[0] = bData.m_Width;
    param[1] = bData.m_Height;
    DataGrid1.Rows.Add(param);
}

你能告诉我们为什么你想反向迭代吗?你能告诉我们为什么你想反向迭代吗?