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);
}
你能告诉我们为什么你想反向迭代吗?你能告诉我们为什么你想反向迭代吗?