これは非常に基本的なことですが、次の概念をプログラミングするより良い方法があるかどうか疑問に思っていました。
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
したがって、これは機能しますが、特にこのループは再帰メソッドでネストされているため、ループするたびにこれが実際にループの最初の反復であることを確認するのはコンピューター時間の無駄のようです。これを行うより良い方法はありますか?
(for ループ条件の node.ChildNodes[i].Attributes.Count が 0 になる可能性があることに注意してください。つまり、node(xmlNode である) は子ノードを持たない可能性があるため、ループは子供も。)
これをうまく説明できたと思います!