Как я могу добавить разделитель между фразами в списке с циклом foreach? - PullRequest
0 голосов
/ 03 октября 2019

У меня есть этот код:

foreach (var node in nodes)
{
    result += node.InnerText;
}

InnerText - это просто 1-2 символа, которые никогда не содержат символ #. В узлах может быть одно или несколько значений узла.

Как можно разграничить каждое из них, чтобы, например, если это были значения узла:

"ab" and "cd"  

Чторезультат будет ab#cd.

Я знаю, что могу просто добавить # к значению, но тогда как насчет последнего символа. Если бы я просто добавил #, я бы получил ab#cd#, а это не то, что я хочу.

Ответы [ 2 ]

5 голосов
/ 03 октября 2019

Использование string.Join - хорошее место для использования в этой ситуации.

string result = string.Join("#", nodes.Select(n => n.InnerText))
0 голосов
/ 03 октября 2019

Вы можете использовать .IndexOf, чтобы узнать текущий индекс узла в цикле foreach. Вы должны объединить node.InnerText, если текущий индекс узла не равен (nodes.Count - 1).

foreach (var node in nodes)
{
    //You can identify the last element in nodes like below
    if (nodes.IndexOf(node) != nodes.Count - 1) 
    {
        result += node.InnerText;
    }
}
...