C#:使用 String.Split 方法在每一行拆分字符串列表?

标签 c# arrays string

我正在尝试使用 String.Split 在每一行拆分我的字符串列表方法,但下面的方法和正则表达式方法都不起作用。相反,他们返回了以下结果 {0} 0. System.String[] 而不是实际的字符串数组。请帮助找出以下代码中的错误:

    string m_settings_temp;
    string[] m_settings;
    public void ShowSettingsGui() {
       var dialog = new OpenFileDialog { Filter = "Data Sources (*.ini)|*.ini*|All Files|*.*" };
       if (dialog.ShowDialog() != DialogResult.OK) return;
       m_settings_temp = File.ReadAllText(dialog.FileName);
       m_settings = m_settings_temp.Split(new [] { '\r', '\n' });
       //This regex method failed as well:  
       //m_settings = Regex.Split(m_settings_temp,"\r\n|\r|\n");
    }

    //The method below is to evaluate the output
    protected override void SolveInstance(IGH_DataAccess DA)
                    {
                        if (m_settings == null)
                        {
                            AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "You must declare some valid settings");
                            return;
                        }
                        DA.SetData(0, m_settings);
                    }

提前致谢!

最佳答案

只需使用 ReadAllLines像这样

m_settings = File.ReadAllLines(dialog.FileName);

这将为您提供一个 string[],其中包含所选文件中每一行的元素。如果在运行此代码后,m_settings 没有元素,则您选择的文件为空。


如果我想在控制台应用程序中查询 m_settings 的内容,我可能会做类似的事情。

for (var i = 0; i < m_settings.Length; i ++)
{
    Console.WriteLine(m_settings[i]);
}

这将输出数组的内容,一次一个元素。如果我对数组使用 ToString 的实现,就像这样,

Console.WriterLine(m_settings);

我会得到数组类型及其包含的元素数量的字符串表示形式。


我怀疑你想做类似的事情

protected override void SolveInstance(IGH_DataAccess DA)
{
     if (m_settings == null || m_settings.Length == 0)
     {
         AddRuntimeMessage(
              GH_RuntimeMessageLevel.Warning,
              "You must declare some valid settings");

         return;
     }

     for (var i = 0; i < m_settings.Length; i ++)
     {
         DA.SetData(i, m_settings[i]);
     }
}

关于C#:使用 String.Split 方法在每一行拆分字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11932435/

相关文章:

string - 如果-OR语句与比较运算符不按预期运行

java - 如何从 strings.xml 文件向数组插入字符串

string - 将一行与c++中的规则匹配

c# - C# 是否有某种自己的客户端数据库实现

c# - 正则表达式 ".*[^a-zA-Z0-9_].*"

C# params 关键字接受多个数组

javascript - 映射到另一个并比较节点

c# - "Runtime Version"和 "Version"有什么区别?

c# - ClickOnce 更新被用户取消,它再也不会要求更新

arrays - 如何在 golang 中创建关联映射?