C# - DataTable Select columns with null value LINQ(C#-DataTable选择具有空值LINQ的列)
本文介绍了C#-DataTable选择具有空值LINQ的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要将Excel文件转换为DataTable,并希望检查列中是否有空值。有什么方法可以在不指定列名的情况下完成此操作吗?类似于:
var nullValues = excelTable.AsEnumerable().Where(row => row.IsNull(0));
但未指定列索引?
推荐答案
您可以迭代数据表中存在的字段并查找空值。请记住,您需要对照DBNull检查这些值。在.NET之前设计的此类型引入了可为Null的类型。
"DBNull表示从数据库返回的不存在的值。例如,在数据库中,表的某行中的一列可能不包含任何数据。该列被视为根本不存在,而不仅仅是没有值。"Reference.
var dt = new DataTable();
var cols = new[]
{
new DataColumn("OrderDetailId", typeof(int)),
new DataColumn("OrderId", typeof(string)),
new DataColumn("Product", typeof(string)),
new DataColumn("UnitPrice", typeof(decimal)),
new DataColumn("OrderQty", typeof(int))
};
dt.Columns.AddRange(cols);
object[] rows =
{
new object[] {1, "O0001", "Mountain Bike", 1419.5, 36},
new object[] {2, "O0001", "Road Bike", 1233.6, 16},
new object[] {3, "O0001", "Touring Bike", 1653.3, 32},
new object[] {4, "O0002", null, 1419.5, 24},
new object[] {5, "O0002", "Road Bike", 1233.6, 12},
new object[] {6, "O0003", "Mountain Bike", null, 48},
new object[] {7, "O0003", "Touring Bike", 1653.3, 8},
};
foreach (object[] row in rows)
dt.Rows.Add(row);
var dtRows = dt.AsEnumerable().Select(x => x.ItemArray).ToList();
var rowsWithNullValue = dtRows.Where(x => x.Any(y => y == null || y == DBNull.Value)).ToList();
if (dtRows.Any(x => x.Any(y => y == null || y == DBNull.Value)))
{
var nullRecordCount = rowsWithNullValue.SelectMany(x => x).Count(x => x == null || x == DBNull.Value);
Console.WriteLine($"The table contains ({nullRecordCount}) null values.");
}
这篇关于C#-DataTable选择具有空值LINQ的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:C#-DataTable选择具有空值LINQ的列
猜你喜欢
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 输入按键事件处理程序 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01