Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C控制台应用程序-删除列表中以字符串开头的行_C#_List_Csv_Console Application - Fatal编程技术网

C# C控制台应用程序-删除列表中以字符串开头的行

C# C控制台应用程序-删除列表中以字符串开头的行,c#,list,csv,console-application,C#,List,Csv,Console Application,我有一种方法可以将一个简单的CSV文件读入IList,然后我将使用它进行一些查询并处理数据,然后将一些内容写入另一个文件。我已经设法将数据读入这个列表,确保跳过任何空行或空行/空白行,但我有一个问题:大约每200条记录,这是不准确的,可能有点早或晚,我有一个头行写入CSV文件。在将此数据放入IList时,我需要确保跳过读取以第1列中的字符串名称开头的标题行。该标题行可能在数据源中出现多次,因此我需要确保在该方法将数据读入列表时检查每一行,并使其跳过第1列中以Name开头的任何标题行/行 我将数据

我有一种方法可以将一个简单的CSV文件读入IList,然后我将使用它进行一些查询并处理数据,然后将一些内容写入另一个文件。我已经设法将数据读入这个列表,确保跳过任何空行或空行/空白行,但我有一个问题:大约每200条记录,这是不准确的,可能有点早或晚,我有一个头行写入CSV文件。在将此数据放入IList时,我需要确保跳过读取以第1列中的字符串名称开头的标题行。该标题行可能在数据源中出现多次,因此我需要确保在该方法将数据读入列表时检查每一行,并使其跳过第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();


    }

所以,看起来,通过一些评论,我发现了我的问题!在执行查询和数据转换后,当我将文件写回结果数据集时,通过在每一行上进行字符串比较来解决这个问题。我可以放心地忽略那些我不需要担心的争吵。它确实包含一个快速的额外读/写函数,但它太微不足道了


我真不敢相信我竟然傻到忽略了这么基本的事情。谢谢大家

我建议使用CSVHelper,而不是尝试手动解析它。CSV比用逗号分割要复杂得多只是为了您的信息,您的代码将无法使用带有逗号的CSV,例如:带逗号的值、、不带逗号的值关于位置!string.IsNullOrWhiteSpaceline&!line.StartsWithName?标题不应该是第一行吗?阅读第一行,记住它并在以后跳过任何类似的行应该不是一个困难的问题。@Amy我对此持开放态度,但我仍然需要使用同一个源文件,它大约每200条记录就有一行标题。对于使用CSVHelper的代码应该是什么样子,您有什么建议吗?