繁体   English   中英

用C#中的十进制列表过滤Linq数据表

[英]Filter datatable with Linq by a decimal list in c#

我有一个数据表,我想按一个值过滤。 这正在工作:

 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));

有什么帮助吗?

您需要使用list.Contains()。 语法为List<T>.Contains(item) (请注意,在OP中的查询中,它正确地指定为item.Contains(list))

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

你可以阅读更多关于List.Contains的语法这里

您正在检查值是否 “包含” 列表 相反。 列表将“包含”

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM