C# 循环遍历数据行中的每个元素
基本上,我有一个C# 循环遍历数据行中的每个元素,c#,loops,foreach,C#,Loops,Foreach,基本上,我有一个DataTable,如下所示: 我想在每行的每个元素上运行一个具有参数的方法 AddProductPrice(SKU, Price, PriceBracket) 例如…: 如果我们获取第一行数据,该方法将运行16次,每次一次总价X不为空 因此,对于第一行中的第一个总价,调用将为: AddProductPrice(SKU, <Total Price 1 value>, 1) AddProductPrice(SKU, <Total Price 2 value&
DataTable
,如下所示:
我想在每行的每个元素上运行一个具有参数的方法
AddProductPrice(SKU, Price, PriceBracket)
例如…:
如果我们获取第一行数据,该方法将运行16次,每次一次总价X
不为空
因此,对于第一行中的第一个总价,调用将为:
AddProductPrice(SKU, <Total Price 1 value>, 1)
AddProductPrice(SKU, <Total Price 2 value>, 2)
AddProductPrice(SKU,1)
对于第一行的第二个总价,调用将为:
AddProductPrice(SKU, <Total Price 1 value>, 1)
AddProductPrice(SKU, <Total Price 2 value>, 2)
AddProductPrice(SKU,2)
请注意:对于全国销售要素,电话将是:
AddProductPrice(SKU, <National Selling value>, 16)
AddProductPrice(SKU,16)
是否有一种巧妙的方法来循环遍历
数据行中的每个元素,以提高过程的效率?您可以使用数据行的项目数组(键入对象[]
)属性,并从列tab.Columns.IndexOf(“交易价格1”)
到tab.Columns.IndexOf迭代其元素(“交易价格16”)
但是要小心,如果列顺序因某种原因发生更改,您的代码可能会中断。安全的方法是通过索引器迭代项-行[“交易价格”+i]
循环数据表。列收集和分析基于列名
for(int i=0;i < dt.Columns.Count; i++)
{
if (dt.Columns[i].ColumnName.StartsWith("Total Price"))
{
var curBracket = Convert.ToInt32(dt.Columns[i].ColumnName.SubString(11));
AddProductPrice(SKU, curRow[dt.Columns[i].ColumnName, curBracket);
}
}
for(int i=0;i
对于每一行,在各列之间循环,然后找到“总价”、“全国销售”的索引,并相应地添加产品价格
for (int i = 0; i < dataTable.Rows.Count; i++)
{
DataRow myRow = dataTable.Rows[i];
for (int j = 0; j < dataTable.Columns.Count; j++)
{
if (dataTable.Columns[j].ColumnName.IndexOf("Total Price") > 0)
{
AddProductPrice(SKU, myRow.ItemArray[j], j);
}
else if (dataTable.Columns[j].ColumnName.IndexOf("National Selling") > 0)
{
AddProductPrice(SKU, myRow.ItemArray[j], 16); //
}
}
}
for(int i=0;i0)
{
AddProductPrice(SKU,myRow.ItemArray[j],j);
}
else if(dataTable.Columns[j].ColumnName.IndexOf(“全国销售”)>0)
{
AddProductPrice(SKU,myRow.ItemArray[j],16)//
}
}
}
“聪明”比什么?你做了什么?干杯,西蒙,我会尝试一下,看看效果如何,如果我开始有问题,你有电子邮件地址吗?