【发布时间】:2017-03-20 04:14:24
【问题描述】:
我有一个 DataTable,我想一次查询一列以检查它是否符合设置的条件,由于某种原因,下面的代码在结果不正确之后为第一列提供了正确的结果。
private bool BusinessRulesOne(DataTable dt, DataColumn dc)
{
bool isSatisfied = false;
DataRow[] checkColumn = dt.Select(dc.ColumnName + " " + "in (1,2,3,)");
if (checkColumn.Length != 0)
{
isSatisfied = true;
}
return isSatisfied;
}
在这个方法上,我传递了我正在查询的 DataTable 和我目前正在关注的 DataColumn。这里需要发生的是我想检查此列上的值是否由值 1,2 和 3 组成。如果是,则返回 true。
private bool BusinessRulesTwo(DataTable dt, DataColumn dc)
{
bool isSatisfied = false;
var checkColumn = dt.Select(dc.ColumnName + " " + " = 1");
if (checkColumn.Count() > 3)
{
isSatisfied = true;
}
return isSatisfied;
}
在另一条规则中,我正在检查该列中一个 (1) 的数量是否超过三 (3),如果是,则返回 true。
欢迎提出任何建议,我不了解 Linq,但如果它能让生活更轻松,我愿意学习和探索它。
【问题讨论】:
-
请更好地解释您在使用此代码时遇到的问题。它会产生不正确的输出吗?您想将两种方法合二为一吗?你想用 Linq 重写方法吗?我在帖子中没有看到问号。
-
抱歉不清楚。上面的代码产生不正确的输出,它假设查询 DataTable 中的 DataColumn。在第一条规则中,如果 DataColumn 由数字 1,2 和 3 组成,它假设返回 true。它对第一列正确执行此操作。在第二列上,它返回 false 而不是 true。因此,我正在寻找建议,如果 Linq 中有一种方法也可以。
标签: c# .net linq datatable datacolumn