Лучший способ получить первое слово и остальные слова в строке в С#

В С#

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

Есть ли способ сделать это, не разбивая его дважды?

Ответ 1

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

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

Ответ 2

Конечно.

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

Ответ 3

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

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

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;
}