Лучший способ получает первое слово и отдых слов в строке в C#

В C#

var parameters =
    from line in parameterTextBox.Lines
    select new {name = line.Split(' ').First(), value = line.Split(' ').Skip(1)};

Существует ли способ сделать это, не имея необходимость разделять дважды?

10
задан CookieOfFortune 2 August 2010 в 16:55
поделиться

4 ответа

вы можете сохранить разделение в предложении let

var parameters =
    from line in parameterTextBox.Lines
    let split = line.Split(' ')
    select new {name = split.First(), value = split.Skip(1)};
30
ответ дан 3 December 2019 в 13:50
поделиться
string Str= "one all of the rest";
Match m = Regex.match(Str,"(\w*) (\w.*)");
string wordone = m.Groups[1];
string wordtwo = m.Groups[2];
4
ответ дан 3 December 2019 в 13:50
поделиться

Вы можете попробовать следующее:

private Dictionary<string, string> getParameters(string[] lines)
{
    Dictionary<string, string> results = new Dictionary<string, string>();
    foreach (string line in lines)
    {
        string pName = line.Substring(0, line.IndexOf(' '));
        string pVal = line.Substring(line.IndexOf(' ') + 1);
        results.Add(pName, pVal);
    }
    return results;
}
0
ответ дан 3 December 2019 в 13:50
поделиться

Конечно.

var parameters = from line in parameterTextBox.Lines
                 let words = line.Split(' ')
                 select new { name = words.First(), words.skip(1) };
6
ответ дан 3 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: