Лучший способ получить первое слово и остальные слова в строке в C # - PullRequest
10 голосов
/ 02 августа 2010

В C #

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

Есть ли способ сделать это без необходимости делить дважды?

Ответы [ 4 ]

29 голосов
/ 02 августа 2010

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

var parameters =
    from line in parameterTextBox.Lines
    let split = line.Split(' ')
    select new {name = split.First(), value = split.Skip(1)};
6 голосов
/ 02 августа 2010

Конечно.

var parameters = from line in parameterTextBox.Lines
                 let words = line.Split(' ')
                 select new { name = words.First(), words.skip(1) };
4 голосов
/ 02 августа 2010
string Str= "one all of the rest";
Match m = Regex.match(Str,"(\w*) (\w.*)");
string wordone = m.Groups[1];
string wordtwo = m.Groups[2];
0 голосов
/ 02 августа 2010

Вы можете попробовать это:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...