Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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#CSV去除不需要的直径_C#_Csv - Fatal编程技术网

C#CSV去除不需要的直径

C#CSV去除不需要的直径,c#,csv,C#,Csv,你好,我遇到了这个问题,希望你能帮助我 我有一个CSV文件,里面有这样的行 而且我需要去掉行中不必要的| 要得到这样的东西: 您可以先splitstring,然后joinback foreach(string line in lines)//or while(!sr.EndOfStream) depends on how you iterate each line { string[] x = line.Split('|'); string show = string.Jo

你好,我遇到了这个问题,希望你能帮助我

我有一个CSV文件,里面有这样的行



而且我需要去掉行中不必要的
|

要得到这样的东西:



您可以先
split
string,然后
join
back

foreach(string line in lines)//or while(!sr.EndOfStream) depends on how you iterate each line
{
    string[] x = line.Split('|');
    string show = string.Join("|", x.Where(s => !string.IsNullOrEmpty(s)));
}

您可以先
split
string,然后
join
back

foreach(string line in lines)//or while(!sr.EndOfStream) depends on how you iterate each line
{
    string[] x = line.Split('|');
    string show = string.Join("|", x.Where(s => !string.IsNullOrEmpty(s)));
}

使用
string.Split
()并指定
StringSplitOptions.removeMptyEntries
作为第二个参数。这将返回一个数组,其中包含拆分字符串的非空分隔值。所以你会看到类似的东西

string[] parsedLine = thisLine
  .Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries);

如果您的代码行遵循您的示例,
parsedLine[0]
将包含用户名,
parsedLine[1]
它们的密码,
parsedLine[2]
它们的电子邮件地址。

使用
string.Split
()并指定
StringSplitOptions.removeMptyEntries
,作为第二个参数。这将返回一个数组,其中包含拆分字符串的非空分隔值。所以你会看到类似的东西

string[] parsedLine = thisLine
  .Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries);
如果您的代码行遵循您的示例,
parsedLine[0]
将包含用户名,
parsedLine[1]
它们的密码,
parsedLine[2]
它们的电子邮件地址。

另一种方法是使用正则表达式,只需使用简单的直接模式
@“\\\\{2,}”
(两个或多个“\\”)替换为单个的
“\/code>”

对于整个文件:

 var data = File
   .ReadLines(@"C:\MyFile.txt")
   .Select(line => Regex.Replace(line, @"\|{2,}", "|"));

 File.WriteAllLines(@"C:\MyClearedFile.txt", data); 
另一种方法是使用正则表达式,只是用一个简单的直接模式
@“\\{2,}”
(两个或多个“|”)替换为单个
“|”

对于整个文件:

 var data = File
   .ReadLines(@"C:\MyFile.txt")
   .Select(line => Regex.Replace(line, @"\|{2,}", "|"));

 File.WriteAllLines(@"C:\MyClearedFile.txt", data); 
这不是CSV–逗号分隔的值。但即便如此,最好的方法是避免在源代码中使用多个分隔符(否则重复的分隔符和空字段之间存在歧义)。这不是CSV–逗号分隔的值。但即便如此,最好的方法是避免在源代码中使用多个分隔符(否则重复的分隔符和空字段之间存在歧义)。