C# 使用两个分隔符拆分行

C# 使用两个分隔符拆分行,c#,string,winforms,list,split,C#,String,Winforms,List,Split,上下文 我正在设计一个应用程序,它将为要使用的应用程序引入初始设置。设置通过文本文件导入,所有设置均采用以下格式: Color= Blue Size= 5 Value = 100 每一行都是使用带有line.Split()的“=”分隔符创建的对象设置(字符串a、字符串b)。然后将创建的每个对象添加到列表(设置)\u settings列表 问题 文本文件的末尾有两个设置,格式为 Location = 123 This Street, City, State, Zip Code 在这种情况下,我

上下文

我正在设计一个应用程序,它将为要使用的应用程序引入初始设置。设置通过文本文件导入,所有设置均采用以下格式:

Color= Blue
Size= 5
Value = 100
每一行都是使用带有line.Split()的“=”分隔符创建的对象设置(字符串a、字符串b)。然后将创建的每个对象添加到列表(设置)\u settings列表

问题

文本文件的末尾有两个设置,格式为

Location = 123 This Street, City, State, Zip Code
在这种情况下,我希望将其拆分为“=”和“,”,并使用它创建一个对象位置(字符串名称、字符串地址、字符串城市、字符串状态、字符串zip)。最后,这将被添加到列表中

当前代码

StreamReader reader = new StreamReader(openFileDialog1.FileName);
string line;

while ((line = reader.ReadLine()) != null)
{  
   string[] words = line.Split('=');
   if(words[0].ToLower().Trim() == "Location")
   {
       string keepThis = words[0].ToLower().Trim();
       string[] Words = line.Split('='); //how to split by 2 delimiters?
       _locList.Add(new Location(Words[0], Words[1], Words[2], words[3], Words[4]);
   }
  _settingsList.Add(new Setting(words[0], words[1]));
}
字符串keepThis存在是因为我试图删除整个“Location=”part from line,use”,“作为分隔符,然后将其添加为新位置(保留此位置,单词[0]、单词[1]、单词[2]、单词[3])

任何有助于解决此问题的建议都将不胜感激

string[] words = line.Split('=', ',');
使用它,你应该是好的。你真的很接近。实际上,您可以根据需要添加任意数量的参数
.split()
,以包含任意数量的转义字符。不过,这只是一个提示,如果您使用3个或更多转义字符,我建议您首先创建一个转义字符数组,然后将该数组作为参数传递。保持清洁

希望这能帮助巴德

string[] Words = line.Split('='); 
可能是:

string[] Words = words[1].Split(',');

因为您已经拆分了行,所以第二项(索引为1)的所有内容都位于
=
的右侧

Split()
可以使用参数中的字符串数组调用:
mystring.Split(新字符串[]{“=”,“,”}
哇,真不敢相信我从来都不知道你能做到这一点。快速简单。是的!当然!如果你使用Microsoft Visual Studio,你可以将鼠标悬停在这些方法上,一个文本弹出窗口将显示关于它们的更多信息。对我来说,悬停
.Split()
告诉我将其作为参数“params char[]separator”传递。因此,我只需将鼠标悬停在函数上,就知道该传递给它什么!@Yahtzee,如果您不介意将此标记为答案,以便其他人知道此问题已解决,那就太好了。只需单击投票按钮下方的箭头,将其标记为答案。只需等待10分钟的要求,然后再标记答案!此解决方案有效我也是,但出于公平考虑,还是把第一个答案贴出来。谢谢