C#数据表过滤器

时间:2015-05-04 12:37:35

标签: c# datatable

我在DataTable中有2列“PriceList”和“Group”。

<img src="http://www.jpl.nasa.gov/spaceimages/images/mediumsize/PIA17011_ip.jpg" class="img-responsive" alt="Responsive image">

组包含,Group1,Group2,Group 3

PriceList contains, List1, List2, List3

这有效

var checkValues1 = new string[] { "List1", "List2" };

var checkValues2 = new string[] { "Group" };

但我不能让这个工作

                dt.AsEnumerable().ToList().ForEach(x =>
                {
                    if (checkValues1.Contains(x["PriceList"]))
                    {
                        newDT.ImportRow(x); //Copy
                        DT.Rows.Remove(x); //Remove
                    }
                });

似乎它必须是完全匹配,所以它只适用于组名完全是“组”的情况,我希望它也匹配子串,因此“Group”将匹配Group1,Group2,Group3。 反正有吗?

1 个答案:

答案 0 :(得分:0)

为此你可以使用函数启动。 以下是例子。

dt.AsEnumerable().ToList().ForEach(x =>
{
if (checkValues2.Any(t => t.StartsWith((x["Group"])))) 
{
newDT.ImportRow(x); //Copy
DT.Rows.Remove(x); //Remove
}
});