我目前有:
string settings = "setting1:value1;setting2:value2";
string[] pair;
foreach(string setting in settings.Split(';'))
{
pair = setting.Split(':');
MessageBox.Show(pair[0] + ":" + pair[1]);
}
我会更喜欢以下内容:
string settings = "setting1:value1;setting2:value2";
foreach (string[] pair in string setting.Split(':') in settings.Split(';'))
{
MessageBox.Show(pair[0] + ":" + pair[1]);
}
这两个in
关键字看起来有点荒谬,但我认为这样的事情很可能也很容易,我只是不知道如何。
那么,有可能吗?
答案 0 :(得分:8)
我不确定这是否更具可读性,但你要求它,我觉得它看起来很酷; - )
string settings = "setting1:value1;setting2:value2";
foreach(var pair in settings.Split(';').Select(str => str.Split(':')))
{
MessageBox.Show(pair[0] + ":" + pair[1]);
}
(我没有编译它,所以如果有语法错误我很抱歉)
答案 1 :(得分:7)
作为其他发布的答案的替代方法,您还可以使用LINQ语法:
string settings = "setting1:value1;setting2:value2";
foreach(string[] pair in
from setting in settings.Split(';')
select setting.Split(':'))
{
MessageBox.Show(pair[0] + ":" + pair[1]);
}
答案 2 :(得分:1)
foreach (string[] pair in settings.Split(';').Select(setting => setting.Split(':')))
{
MessageBox.Show(pair[0] + ":" + pair[1]);
}
答案 3 :(得分:0)
foreach (string settingstr in settings.Split(';'))
{
string[] setval = settingstr.Split(':');
string setting = setval[0];
string val = setval[1];
}