他の答えがうまくいくかもしれませんが、私は次の代替案を提案します。
そうする主な理由は、他の例では、実際にはコードをもう少し複雑に見せる必要があり、コードをクリーンアップして、割り当てをよりシンプルに見せようとしていることが明らかだからです。このソリューションは、これらの TreeNode をアプリの別の場所に作成する場合にも役立ちます (他のソリューションでは、TreeNode 配列を作成する各場所に割り当てコードをコピー アンド ペーストする必要があります。
割り当てコードをきれいにするコストは、混乱を別の場所に移動することです (しかし、すべてが本当に簡単なので、正直なところ、それほど混乱することはありません)。
まず、TreeNode 配列を構築するためのクラスを作成します。
public static class TreeNodeBuilder
{
public static TreeNode[] FromStringArray(String[] array)
{
TreeNode[] returnValue = new TreeNode[array.Length];
for(int i = 0; i < array.Length; i++)
{
returnValue[i] = new TreeNode(array[i]);
}
return returnValue;
}
}
次に、割り当てコードで、次を使用できます。
String[] animals = {"dog", "cat", "mouse"};
TreeNode[] animalNodes = TreeNodeBuilder.FromStringArray(animals);
結論
これ(IMHO)は、他の回答が提供するLINQを使用するよりも優れたオプションです。主にコードの明確さ、保守性、およびこのロジックをすべて別のファイル(のようなファイル)に入れることで達成できる分離のためですTreeNodeBuilder.cs
。
価値があるのは、上記の関数内の他の回答で提供されているLINQコードを使用することもできますFromStringArray
(両方の世界を最大限に活用したい場合)。
とにかく、私の 2 セント :) お役に立てば幸いです。