Это очень простой, но мне было интересно, есть ли лучший способ программирования следующей концепции.Идентификация первой итерации цикла, C#
for (int j = 0; j < node.ChildNodes[i].Attributes.Count; j++)
{
if (j != 0) row.Cells[1].Value += ", ";
row.Cells[1].Value += node.ChildNodes[i].Attributes[j].Name;
}
В основном им-узлы вывода в C# к столу и я хочу, чтобы каждый имя атрибута должны быть разделены запятой. Проблема в том, что, очевидно, для первого экземпляра цикла я желаю, чтобы не иметь запятая ему предшествовало, то есть я не мог просто
row.Cells[1].Value += ", " + node.ChildNodes[i].Attributes[j].Name;
в противном случае выход в ячейке будет выглядеть примерно так:
, name, day
вместо
name, day
Таким образом, хотя это работает, это кажется пустой тратой времени компьютера, чтобы проверить каждый раз, когда он закругляется, что это действительно первая итерация цикла, эс поскольку этот цикл вложен в рекурсивный метод. Есть ли лучший способ сделать это?
(Принимая во внимание, что node.ChildNodes [i] .Attributes.Count в условиях цикла for может быть 0, то есть узел (который является xmlNode) не может иметь дочерних узлов, поэтому цикл удваивается как проверка наличия у детей тоже.)
Надеюсь, я объяснил это хорошо!
Вы считаете «String.Join'? Он делает это автоматически. – asawyer
Просто начните со второй итерации и всегда добавляйте ',' перед добавлением следующей строки – ppetrov