对象[] Param的逆序

时间:2017-08-05 01:14:26

标签: 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, param);
}

2 个答案:

答案 0 :(得分:2)

我不确定数据类型BD是什么,但我必须假设它是一个可索引的列表(即它具有this[int]属性,并且Count,{{ 1}},或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

答案 1 :(得分:1)

您可以在通过foreach之前使用反向列表,但这不如使用for循环并向后迭代它那样高效,如下所述:Possible to iterate backwards through a foreach?