【发布时间】:2017-04-04 12:22:21
【问题描述】:
我有 DataTable 的数据如下,
Couponid STATE
20160406000033 A
20160406000051 A <--- I don't want this row
20160406000051 K
20160406000051 K
我有一个列表 list_coupon,其中包括 20160406000051。
现在,我只想复制整个 DataTable,不包括与 List list_coupon 匹配且同时具有“A”值的行。 如果 Couponid 与列表匹配且值为 'K',则必须保留在 DataTable 中。
换一种说法,
在处理每一行时,
如果某行不属于列表,则该行必须保留在 DataTable 中。
但是,如果一行属于列表,并且该行具有“A”值,则必须排除该行,但属于该列表的具有“K”值的其他行必须保留在 DataTable 中。
我通过使用几个循环来做到这一点,但它花费了太多时间..
我认为下面我尝试的代码将 DataTable 划分为行是否属于列表,而我也需要“既属于又不属于”列表的行..
IEnumerable<DataRow> rows_query = from r in dt.AsEnumerable()
where !list_coupon.Contains(r.Field<string>("Couponid")) &&
r.Field<string>("STATE") != "A"
select r;
dt = rows_query.CopyToDataTable();
我们将非常感谢您的出色建议!
非常感谢!
【问题讨论】:
-
如果答案对您有用,请接受答案。
-
@Viplock,有些奇怪……我正在分析……请稍候