【问题标题】:Filter datatable with Linq by a decimal list in c#在 c# 中通过十进制列表使用 Linq 过滤数据表
【发布时间】:2019-06-21 11:01:39
【问题描述】:

我有一个数据表,我想按一个值进行过滤。这是有效的:

 var result = datatable.AsEnumerable()
    .Where(r => r.Field<decimal?>("decimal_col") == 1);

现在我想按小数列表进行过滤。我试图输入contains,但它不起作用。这是列表:

var list = new List<decimal>() { 8, 3, 2, 1 };

这就是我想要的,但它不起作用:

var result = datatable.AsEnumerable()
        .Where(r => r.Field<decimal?>("decimal_col").Contains(list));

有什么帮助吗?

【问题讨论】:

    标签: c# linq datatable contains


    【解决方案1】:

    您需要使用 list.Contains()。语法是List&lt;T&gt;.Contains(item)(注意区别,在OP的查询中,它被正确地作为item.Contains(list)给出)

    var result = datatable.AsEnumerable()
            .Where(r => list.Contains(r.Field<decimal?>("decimal_col")));
    

    您可以阅读更多关于 List.Contains here 的语法

    【讨论】:

      【解决方案2】:

      您正在检查 是否“包含”列表。这是相反的方式。 list 将“包含”

      list.Contains(r.Field<decimal?>("decimal_col"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        • 2016-12-09
        相关资源
        最近更新 更多