CONTEXT
我正在设计一个应用程序,它将为要使用的应用程序引入初始设置。设置通过文本文件导入,所有设置都具有以下格式:
Color= Blue
Size= 5
Value = 100
每一行都是创建的对象设置(字符串a,字符串b),使用" ="的分隔符;用Line.Split()。然后将创建的每个对象添加到List(设置)_settingsList。
问题
文本文件末尾有2个设置格式为
Location = 123 This Street, City, State, Zip Code
在这种情况下,我想用" ="和","并使用它来创建一个对象Location(字符串名称,字符串地址,字符串城市,字符串状态,字符串zip)。最后,这将被添加到List _locList。
当前代码
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 ="部分来自线路,使用","作为分隔符,然后将其添加为新位置(保持这个,单词[0],单词[1],单词[2],单词[3])
任何有助于解决此问题的建议都将非常感谢!
答案 0 :(得分:1)
string[] words = line.Split('=', ',');
使用它,你应该是好的。你真的很亲密。实际上,您可以根据需要为.split()
添加任意数量的参数,以根据需要包含尽可能多的转义字符。只是一个提示,如果你曾经使用过3个或更多的转义字符,我建议先制作一个数组,然后将该数组作为参数传递。保持清洁!
希望有助于萌芽!
答案 1 :(得分:1)
string[] Words = line.Split('=');
应该是:
string[] Words = words[1].Split(',');
由于您已经拆分了该行,因此第二项(索引为1)的所有内容都位于=
的右侧。