C# 控制台应用程序 - 删除列表中以字符串开头的行
C# Console App - Remove lines in list that start with string
我有一种方法可以将一个简单的 CSV 文件读入 IList,然后我将使用它进行一些查询和处理数据,稍后将一些内容写入另一个文件。我已经设法将数据读入此列表,确保跳过任何空行或 empty/whitespace 行,但我有一个问题:大约每 200 条记录(这不准确,可能有点早或稍后,)我有一个 header 行被写入 CSV 文件。将此数据放入我的 IList 时,我需要确保跳过读取 header 行(以第 1 列中的字符串 "Name" 开头)。 header 行可能会在数据源中出现多次,因此我需要确保在将数据读入列表时检查此方法中的每一行,并让它跳过任何 "header" row/row 在第 1 列中以 "Name" 开头。
我将数据读入列表的代码如下。有什么建议么?我无法真正控制我需要读取的 CSV 文件,因此需要在我将数据读入我的程序时清理和忽略这一行。
string path2 = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string csvPath = path2 + "\" + "AleksReport.csv";
public static IList<string> ReadFile(string csvPath)
{
List<string> myList = new List<string>();
return (from line in File.ReadAllLines(csvPath)
where !string.IsNullOrWhiteSpace(line)
let columns = line.Split(',')
where columns.Length >= 2 &&
!string.IsNullOrWhiteSpace(columns[0]) &&
!string.IsNullOrWhiteSpace(columns[1]) &&
select line).ToList();
}
看来,通过一些评论——我解决了我的问题!在执行查询和数据转换后,当我将文件写回我的结果数据集时,通过在每一行上进行字符串比较来设法解决这个问题。我可以安全地忽略我不需要担心的行。它确实涉及一个快速的额外 read/write 函数,但它太微不足道了!
我不敢相信我愚蠢到忽视了这么基本的东西。谢谢大家!
我有一种方法可以将一个简单的 CSV 文件读入 IList,然后我将使用它进行一些查询和处理数据,稍后将一些内容写入另一个文件。我已经设法将数据读入此列表,确保跳过任何空行或 empty/whitespace 行,但我有一个问题:大约每 200 条记录(这不准确,可能有点早或稍后,)我有一个 header 行被写入 CSV 文件。将此数据放入我的 IList 时,我需要确保跳过读取 header 行(以第 1 列中的字符串 "Name" 开头)。 header 行可能会在数据源中出现多次,因此我需要确保在将数据读入列表时检查此方法中的每一行,并让它跳过任何 "header" row/row 在第 1 列中以 "Name" 开头。
我将数据读入列表的代码如下。有什么建议么?我无法真正控制我需要读取的 CSV 文件,因此需要在我将数据读入我的程序时清理和忽略这一行。
string path2 = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string csvPath = path2 + "\" + "AleksReport.csv";
public static IList<string> ReadFile(string csvPath)
{
List<string> myList = new List<string>();
return (from line in File.ReadAllLines(csvPath)
where !string.IsNullOrWhiteSpace(line)
let columns = line.Split(',')
where columns.Length >= 2 &&
!string.IsNullOrWhiteSpace(columns[0]) &&
!string.IsNullOrWhiteSpace(columns[1]) &&
select line).ToList();
}
看来,通过一些评论——我解决了我的问题!在执行查询和数据转换后,当我将文件写回我的结果数据集时,通过在每一行上进行字符串比较来设法解决这个问题。我可以安全地忽略我不需要担心的行。它确实涉及一个快速的额外 read/write 函数,但它太微不足道了!
我不敢相信我愚蠢到忽视了这么基本的东西。谢谢大家!