c# - 在c#中通过十进制列表过滤Linq数据表
问题描述
我有一个数据表,我想按一个值过滤。这是有效的:
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 语法的更多信息
推荐阅读
- redux - 发布请求 redux thunk
- sql-server - Visual Studio 数据库项目 - 使用 SQLCMD 变量定义文件大小
- discord - 直到 Discord Bot 发送下一条消息的时间延迟
- css - 将文本溢出:省略号文本转换为全文的“浮动”视图
- python - 在 Python 线程中使用标准输出管道
- vaadin - 包括 vaadin-combo-box-item 的样式
- c# - 如何垂直引导我的数据网格查询
- java - Tomcat 6 中未部署 Soap Web 服务
- c# - 自定义选择器 XAML 的多项选择不起作用
- stripe-payments - 限制购买产品总数量而不是 SKU 数量