C# 如果数据表C中的特定单元格值包含零,则跳过整行#
我可以跳过datatable中的第一行,以便在使用下面的代码循环遍历datatable时不进一步处理C# 如果数据表C中的特定单元格值包含零,则跳过整行#,c#,.net,linq,c#-4.0,datatable,C#,.net,Linq,C# 4.0,Datatable,我可以跳过datatable中的第一行,以便在使用下面的代码循环遍历datatable时不进一步处理 DataTable dt; foreach (DataRow r in dt.Rows.Cast<DataRow>().Skip(1)) { //do something... } DataTable dt; foreach(dt.Rows.Cast()中的数据行r.Skip(1)) { //做点什么。。。 } 但如果datatable中该行中的特定
DataTable dt;
foreach (DataRow r in dt.Rows.Cast<DataRow>().Skip(1))
{
//do something...
}
DataTable dt;
foreach(dt.Rows.Cast()中的数据行r.Skip(1))
{
//做点什么。。。
}
但如果datatable中该行中的特定单元格值为空,我需要跳过整行以避免进一步处理
我不知道该怎么做,谁能帮我一下吗。。
提前感谢foreach(dt.Rows.Cast()中的数据行r.Skip(1))
foreach (DataRow r in dt.Rows.Cast<DataRow>().Skip(1))
{
if (r["ThisColumnHas0Value"].ToString() == "0")
{
Console.WriteLine("SKIP");
continue;
}
Console.Write("PROCESS");
}
{
如果(r[“ThisColumnHas0Value”].ToString()=“0”)
{
控制台写入线(“跳过”);
继续;
}
控制台。写入(“进程”);
}
使用
Where
过滤掉不需要的行,如
foreach (DataRow r in dt.Rows.Cast<DataRow>().Skip(1)
.Where(o => !string.IsNullOrEmpty(o["Column"].ToString())))
{
...
}
foreach(dt.Rows.Cast()中的数据行r.Skip(1)
.Where(o=>!string.IsNullOrEmpty(o[“Column”].ToString()))
{
...
}
如果您在从数据库查询数据时进行筛选,则更好,这样就不会加载这些行。您知道要检查哪个单元格吗?每次都一样?是的,我们知道要检查哪个单元格,并且始终相同。您可以在
if
块中检查单元格的值,如果单元格的值为空,则使用continue
。或者使用where Linq方法过滤掉单元格值为空的行