C# 基于c中的另一个替换datatable中的所有匹配值#

C# 基于c中的另一个替换datatable中的所有匹配值#,c#,C#,我有这样一个数据表: 第二个是这样的: 基于表2中的GEN\u code PS:第二个表中的GEN_code不是唯一的,可以重复,重复的行也应该添加到第一个表中 我尝试使用: Table1.Merge(Table2, false, MissingSchemaAction.Ignore); 但是没有添加重复的行。我应该如何解决这个问题?假设您将表1和表2的每一次出现都存储到一个“record”类中,该类将datatable的每一列都作为属性。 使用LINQ可以很容易地完成 假设表1中的记录存

我有这样一个数据表:

第二个是这样的:

基于表2中的
GEN\u code

PS:第二个表中的
GEN_code
不是唯一的,可以重复,重复的行也应该添加到第一个表中 我尝试使用:

Table1.Merge(Table2, false, MissingSchemaAction.Ignore);

但是没有添加重复的行。我应该如何解决这个问题?

假设您将表1和表2的每一次出现都存储到一个“record”类中,该类将datatable的每一列都作为属性。 使用LINQ可以很容易地完成

假设表1中的记录存储在
列表1
中,表2中的其他记录存储在
列表2

foreach (record reference_record in List1)
{
      foreach(record record_to_update in List2.Where(x=>x.GEN_CODE == reference_record.GEN_CODE).Select(x=>x).ToList())
      {
          record_to_update.MIN_QUANTITY = reference_record.MIN_QUANTITY;
          record_to_update.MAX_QUANTITY = reference_record.MAX_QUANTITY;
          record_to_update.DISCOUNT_VALUE = reference_record.MAX_QUANTITY;
       }
}
您需要在以下类上绑定数据表:

public class record
{
    public string GEN_CODE { get; set; }
    public string PRODUCT_NAME { get; set; }
    public string MIN_QUANTITY { get; set; }
    public string MAX_QUANTITY { get; set; }
    public string DISCOUNT_VALUE { get; set; }
    //... add other properties here
}

是的,这正是我的合并要做的,但是重复列呢?我希望它们也被添加到列表2中,因为第二个foreach循环浏览列表2中与列表1中选择的记录具有相同“GEN_代码”的所有记录,因此列表2也将更新其副本