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