我在dataTable中有一列具有空白行
Column1
A
B
C
D
E
我需要设置是否存在并避免添加,但是不应计入空白行。只有包含数据的行应位于中(如果存在)。谢谢
bool exists = dt.Select().ToList().Exists(row => row["column1"].ToString() == txtbox)
if(exists == true)
{}
else
//它包含空白,所以它变为true,我需要的是不应该包含空白行。
答案 0 :(得分:1)
var lignesNonContainEmptyString = dt.Select()
.Where(row => row["column1"] != null
&& row["column1"].ToString() == txtbox
&& !string.IsNullOrEmpty(row["column1"].ToString()))
bool exists = lignes.Count() != 0;
OR
bool exists = dt.Select()
.Any(row => row["column1"] != null
&& row["column1"].ToString() == txtbox
&& !string.IsNullOrEmpty(row["column1"].ToString()))
答案 1 :(得分:1)
如果文本框为空,您想返回false
,因此请为文本框添加条件。
bool exists = !string.IsNullOrWhiteSpace(txtbox)
&& dt.Select().ToList()
.Exists(row => row["column1"].ToString() == txtbox)
顺便说一句,您可以使用对扩展名.Select().ToList()
的引用,而不是使用System.Data.DataTableExtensions
,而是使用扩展名AsEnumerable
:
dt.AsEnumerable().Any( .....
答案 2 :(得分:0)
此代码可以为您提供帮助
from a in list where ( Column1!=null || Column1!="")
&& Column1 ==搜索字段 选择一个
答案 3 :(得分:0)
这个怎么样:非linq方式
bool DataTableNonEmptyCount()
{
int count =0;
foreach (DataColumn col in row.Table.Columns)
if (!row.IsNull(col))
count ++;
return count;
}
这将返回列中所有非空行的计数。
答案 4 :(得分:0)
基于Thierry的answer,您还可以使用Any(predicate) syntax:
var existsLineWithoutEmptyString =
dt.AsEnumerable()
.Any(row => row["column1"] != null
&& row["column1"].ToString() == txtbox
&& !string.IsNullOrEmpty(row["column1"].ToString()))