C# 如何修复额外的运行循环?

C# 如何修复额外的运行循环?,c#,.net,C#,.net,我创建了一个对象,其中包含来自3行的值,我需要通过3行循环并添加来自该对象的值(rowsCmd) private void calculateList() { var Unique=Cursor.GetFieldValue(“Unique”); var document=new HeadersRepository().Get(唯一); if(document==null) { 返回; } var rowsRepository=新的rowsRepository(文档); var rowList=r

我创建了一个对象,其中包含来自3行的值,我需要通过3行循环并添加来自该对象的值(rowsCmd)

private void calculateList()
{
var Unique=Cursor.GetFieldValue(“Unique”);
var document=new HeadersRepository().Get(唯一);
if(document==null)
{
返回;
}
var rowsRepository=新的rowsRepository(文档);
var rowList=rowsRepository.GetRows();
var cmd=SqlClient.Main.CreateCommand(string.Format(
@“选择DOC.Unique,DOC.Number from DOC where DOC.Unique=@Unique order by DOC.Number”),新建{Unique});
var rowsCmd=cmd.ExecObjects(新
{
唯一=0,
数字=0,
});
foreach(行列表中的变量行)
{
foreach(rowsCmd中的var rowCmd)
{
row.Number=rowCmd.Number;
row.Number=rowCmd.Number;
}
}
}

如果我有2行,这段代码将执行4次,但只需要2行。如何创建一个循环,该循环将通过我的列表rowList中的每一行,并将来自对象rowsCmd的数据放入1个循环中

您的代码始终使用rowsCmd列表的最后一个元素设置行值。所以它是一个错误的代码段

出于您的目的,您可以使用For循环而不是foreach循环

for(int i=0; i< rowList.Count; i++){
   rowList[i].Number = rowsCmd[i].Number;
}
for(int i=0;i
您的代码始终使用rowsCmd列表的最后一个元素设置行值。所以它是一个错误的代码段

出于您的目的,您可以使用For循环而不是foreach循环

for(int i=0; i< rowList.Count; i++){
   rowList[i].Number = rowsCmd[i].Number;
}
for(int i=0;i
您有嵌套的foreach循环,这意味着内部循环将在通过外部循环的每次迭代中完全运行<代码>行。编号将被重复覆盖,最后一个获胜。我不知道“此代码将执行4次”是什么意思。什么是“这个代码”?内部foreach循环中的主体?当然,内部foreach循环的主体将执行rowList.Count*rowsCmd.Count次。当你说“但只需要2个”时,这让我完全困惑。我不知道你想要/试图实现什么。你的问题描述很混乱。(旁注:内部foreach主体中的两个代码行是相同的赋值。这是怎么回事?)。对于每个rowCmd,将row.Number的值设置两次。因此,如果我有多个rowsCmd,我会将row.Number的值设置为第一个rowsCmd的值两次。然后将第二个rowCmd的值复制两次。以此类推。这意味着我首先将所有值读取到对象中,并尝试将它们(来自对象的值)添加到行列表中的每一行。但我不知道如何在没有第二个循环的情况下编写值obj。obj的值只能在嵌套的foreach循环中获得,这意味着内部循环将在通过外部循环的每次迭代中完全运行<代码>行。编号将被重复覆盖,最后一个获胜。我不知道“此代码将执行4次”是什么意思。什么是“这个代码”?内部foreach循环中的主体?当然,内部foreach循环的主体将执行rowList.Count*rowsCmd.Count次。当你说“但只需要2个”时,这让我完全困惑。我不知道你想要/试图实现什么。你的问题描述很混乱。(旁注:内部foreach主体中的两个代码行是相同的赋值。这是怎么回事?)。对于每个rowCmd,将row.Number的值设置两次。因此,如果我有多个rowsCmd,我会将row.Number的值设置为第一个rowsCmd的值两次。然后将第二个rowCmd的值复制两次。以此类推。这意味着我首先将所有值读取到对象中,并尝试将它们(来自对象的值)添加到行列表中的每一行。但我不知道如何在没有第二个循环的情况下编写值obj。obj中的值我只能在循环中获取