C# 使用C中数据集的For循环绑定列表#使用上一次迭代覆盖

C# 使用C中数据集的For循环绑定列表#使用上一次迭代覆盖,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,C#MVC 4.我有一个包含多个数据表的数据集。当我循环所有数据表时,我会连续绑定一个列表。这是我的代码。花了几个小时 循环迭代完成时,它显示“allMissingRigs”(这是一个List对象)最后一个“missingRigs”(这是一个List)覆盖的所有项 是否有其他方法绑定列表 我所做的什么错误导致了最后一次迭代值被覆盖的结果 DataSet response =new DataSet(); DataTable dtResponse = new Data

C#MVC 4.我有一个包含多个数据表的数据集。当我循环所有数据表时,我会连续绑定一个列表>。这是我的代码。花了几个小时

循环迭代完成时,它显示“allMissingRigs”(这是一个List>对象)最后一个“missingRigs”(这是一个List)覆盖的所有项

是否有其他方法绑定列表>

我所做的什么错误导致了最后一次迭代值被覆盖的结果

        DataSet response =new DataSet();
        DataTable dtResponse = new DataTable();
        List<MissingRIG> missingRigs = new List<MissingRIG>();
        List<List<MissingRIG>> allMissingRigs = new List<List<MissingRIG>>()



       foreach (DataTable dt in response.Tables)
        {

        dtResponse = dt;
        missingRigs.Clear();


            foreach (var item in dtResponse.AsEnumerable())
            {
               missingRigs.Add(new MissingRIG( DataTableOperationHelper.GetStringValue(item, "date"),DataTableOperationHelper.GetStringValue(item, "shiftstatus"),
                                        DataTableOperationHelper.GetStringValue(item, "number")));
            }
        allMissingRigs.Add(missingRigs);


        }
DataSet响应=新数据集();
DataTable dtResponse=新DataTable();
List missingRigs=新列表();
List allMissingRigs=新列表()
foreach(响应中的DataTable dt.Tables)
{
dtResponse=dt;
缺少Rigs.Clear();
foreach(dtResponse.AsEnumerable()中的变量项)
{
missingRigs.Add(新MissingRIG(DataTableOperationHelper.GetStringValue(项,“日期”)、DataTableOperationHelper.GetStringValue(项,“移位状态”),
DataTableOperationHelper.GetStringValue(项,“编号”);
}
所有缺失钻机。添加(缺失钻机);
}

每次都会添加相同的missingRigs实例。所以当它被清除和填充时,它总是同一个实例。要添加副本,应在循环内创建新列表,而不是重复使用同一列表实例:

   foreach (DataTable dt in response.Tables)
   {
        dtResponse = dt;
        List<MissingRIG> missingRigs = new List<MissingRIG>();
       //missingRigs.Clear();
foreach(响应中的DataTable dt.Tables)
{
dtResponse=dt;
List missingRigs=新列表();
//缺少Rigs.Clear();

调试应用程序时,您是否看到dtResponse.AsEnumerable()每次迭代的不同数据?因为您说它被上一个列表覆盖了..而debuggin每次迭代都会显示不同的数据。但迭代完成后,我发现所有项目都被上一次迭代的“缺少装备”覆盖了…如果有任何帮助,我将不胜感激