如果与特定字符串相等,则使用File.ReadAllLines跳过行

问题描述 投票:0回答:1

是否可以执行string[] CSV_file = File.ReadAllLines(@..\..\..\Data.csv").Skip()而不是将一行硬编码为Skip(1)跳过一行等于字符串的行。说csv文件是:

你好,山姆

你好,乔

你好,本

并且您想跳过每行说'no'的行,所以只剩下三个问号这是否有可能像下面的代码或其他方式一样。

string[] CSV_file = File.ReadAllLines(@..\..\..\Data.csv").Skip(alllines).Equals("No");

提前谢谢您

c# csv readline
1个回答
0
投票

改用Where扩展方法,使用此方法可以按某些条件过滤行。在您的情况下,条件将为不等于“否”

var lines = File.ReadAllLines("file")
    .Where(line => line.Equals("No") == false)
    .ToArray();

仅检查第一列,请更改条件以确保该行不是以“ no”开头,

var lines = File.ReadAllLines("file")
    .Where(line => line.StartsWith("no,") == false)
    .ToArray();

0
投票

上面有一个稍微修改的代码

string[] CSV_file = File.ReadAllLines("file").Where(l => !l.StartsWith("No")).ToArray();
© www.soinside.com 2019 - 2024. All rights reserved.