我创建了一个对象,其中有3行的值,我需要遍历3行并添加该对象的值(rowsCmd)。
private void CalculateDist()
{
var Unique= Cursor.GetFieldValue<int>("Unique");
var document = new HeadersRepository().Get(Unique);
if (document == null)
{
return;
}
var rowsRepository = new RowsRepository(document);
var rowList = rowsRepository.GetRows();
var cmd = SqlClient.Main.CreateCommand(string.Format(
@"select DOC.Unique, DOC.Number from DOC where DOC.Unique =@Unique order by DOC.Number"), new { Unique });
var rowsCmd = cmd.ExecObjects(new
{
Unique= 0,
Number= 0,
});
foreach (var row in rowList)
{
foreach (var rowCmd in rowsCmd)
{
row.Number = rowCmd.Number;
row.Number= rowCmd.Number;
}
}
}
如果我有2行,则此代码将执行4次,但只需要2次。如何创建一个循环,该循环将遍历我的列表rowList中的每一行,并将来自对象rowCmd的数据放入1个循环中
答案 0 :(得分:2)
您的代码始终使用rowCmd列表的最后一个元素设置行值。因此,这是错误的代码段。
出于您的目的,您可以使用for循环而不是foreach循环。
for(int i=0; i< rowList.Count; i++){
rowList[i].Number = rowsCmd[i].Number;
}