类数据添加将重写已经存在的数据

本文关键字:数据 存在 重写 添加 | 更新日期: 2023-09-27 18:20:36

我有一个类,在 2 foreach 循环中,我想将数据集中表中的所有数据添加到我的类中,但问题是:在它完成内部 foreach 循环后,下一个要复制的表也将替换ret中已有的记录,所以最后如果我有 2 个表的表1 行和表 2 的 2 行表,我将ret有 3 条记录,但表 1 中的所有数据都替换为表 2 中的数据!例

1 表2-------- --------V y v y-- -- -- --TE 圣毫米 DD SS CC

但最终在 ret 而不是有 {te st}{mm dd}{ss cc} 我有 {mm

dd}{mm dd}{ss cc} 我有帮助!

list<class> ret = new list<class>();
class FR = new class();
foreach (DataTable table in ds.Tables)
{
    foreach (DataRow row in table.Rows)
    {
        if (String.IsNullOrEmpty(FR.v) || FR.v != row["v"])
        {
            FR.v = row["v"].ToString();
        }
        if (String.IsNullOrEmpty(FR.y) || FR.y != row["y"])
        {
            FR.y = row["y"].ToString();
        }
        ret.Add(FR);
    }
}

类数据添加将重写已经存在的数据

FR始终是同一个实例,因此每次对其设置值时,您都在对同一实例进行操作,并一遍又一遍地将其重新添加到集合中。

只需在循环的每次迭代中创建一个新实例:

List<SomeClass> ret = new List<SomeClass>();
foreach (DataTable table in ds.Tables)
{
    foreach (DataRow row in table.Rows)
    {
        SomeClass FR = new SomeClass(); // <--- right here
        if (String.IsNullOrEmpty(FR.v) || FR.v != row["v"])
        {
            FR.v = row["v"].ToString();
        }
        if (String.IsNullOrEmpty(FR.y) || FR.y != row["y"])
        {
            FR.y = row["y"].ToString();
        }
        ret.Add(FR);
    }
}
相关文章: