C# 使用StreamReader读取CSV文件时如何跳过全为空值的行
实现方案
你需要在拆分得到字段数组后,校验数组是否所有元素都为空字符串,校验不满足全空条件时才执行后续转换逻辑即可。
首先确保你的代码引入了Linq命名空间:using System.Linq;
修改后的完整代码如下:
using (StreamReader reader = new StreamReader(stream)) { // 跳过首行(如果你的CSV没有表头可以删掉这行) reader.ReadLine(); while (reader.Peek() != -1) { var line = reader.ReadLine(); // 先过滤本身就是空/全空白的行,避免后续操作抛出空引用异常 if (string.IsNullOrWhiteSpace(line)) { continue; } string[] data = line.Split(','); // 核心过滤逻辑,二选一即可 // 写法1:严格过滤所有字段完全等于空字符串""的行 if (data.All(field => field == string.Empty)) { continue; } // 写法2:宽松过滤,字段包含空格、制表符等空白内容也判定为空行 // if (data.All(field => string.IsNullOrWhiteSpace(field))) // { // continue; // } // Convert data into an object ... } }
内容的提问来源于stack exchange,提问作者drai29
相关产品推荐
相关产品推荐

