【问题标题】:Append String array using TextInfo.ListSeparator使用 TextInfo.ListSeparator 追加字符串数组
【发布时间】:2018-10-05 11:03:14
【问题描述】:

我正在读取 CSV 文件中的所有行。我想通过 Split 获取特定的行号并将其放入数组中。这是我目前的方式:

var resultPath = GetFilePath();
String[] lines = null;
lines = System.IO.File.ReadAllLines(resultPath);
string[] values = lines[result.LineNumber - 1].Split(','); //Get specific line number and place in an array

现在,我想使用TextInfo.LineSeparator,而不是这个。

这是我的尝试:

var resultPath = GetFilePath();
String[] lines = null;
lines = System.IO.File.ReadAllLines(resultPath);
var listSeparator = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator;
string[] values = ??? //I am stuck here...

我该如何解决这个问题?

【问题讨论】:

  • 查看String.Join(separatorstring, array)
  • 作为相关说明,如果您将线连接在一起,那么您的结果肯定不应该是字符串数组了吗?
  • 在代码和标签中你(正确地)使用ListSeparator,但在标题和文本中你谈论的是LineSeparatorTextInfo 中不存在)。
  • 如果我理解正确,你只需要Split(new [] {listSeparator}, StringSplitOptions.None);

标签: c# arrays list-separator


【解决方案1】:
var resultPath = GetFilePath();
String[] lines = null;
lines = System.IO.File.ReadAllLines(resultPath);
var listSeparator = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator;
string[] values = lines[result.LineNumber - 1].Split(new String[] { listSeparator }, StringSplitOptions.None); 

现在工作正常....

【讨论】:

    【解决方案2】:

    根据你目前的方式:

    var resultPath = GetFilePath();
    String[] lines = null;
    lines = System.IO.File.ReadAllLines(resultPath);
    var listSeparator = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator;
    string[] values = lines[result.LineNumber - 1].Split(listSeparator); //you can change it directly with your old separator ','
    

    【讨论】:

    • listSeparator 的类型为 string,而不是 char。您在这里尝试使用哪个 Split 重载?
    • 显示Split()中的listSeparator参数无效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2011-08-24
    相关资源
    最近更新 更多