C#で動的配列を作成する方法はありますか?
C#で動的配列を作成する方法はありますか?
回答:
見てみましょう一般的なリストを。
dynamic[] -msdn.microsoft.com/en-GB/library/dd264736.aspx(動的タイプの配列)またはExpandoObject msdn.microsoft.com/について尋ねている可能性がありますen-us / library /…これらに言及しないことで答えを-1にできる
コードサンプルを使用して、ChrisとMigolの回答を拡張します。
配列を使用する
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
一般的なリストを使用します。内部的には、List <T>クラスはストレージに配列を使用しますが、効率的に成長できるようにしています。
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
時々プレーンリストがより便利なため、ジェネリックリストよりも好まれます(コストのかかる計算-数値代数アプリケーションなどのパフォーマンスの向上、またはRやMatlabなどの統計ソフトウェアとのデータ交換に)
この場合、リストを動的に開始した後でToArray()メソッドを使用できます。
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
もちろん、これが意味を持つのは、配列のサイズが事前に知られていないか、固定されていない場合だけです。プログラムのある時点ですでに配列のサイズがわかっている場合は、固定長配列として開始することをお勧めします。(たとえば、ResultSetからデータを取得する場合、そのサイズをカウントして、そのサイズの配列を動的に開始できます)
動的配列の例:
Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];
for (int i = 0; i < number; i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++ )
{
Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();
この答えは、あなたが探している答えのようです。なぜこれができないのですか?dynamic x = new ExpandoObject {Foo = 12、Bar = "twelve"}
ExpandoObjectここhttps://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspxについてお読みください
そして、dynamicここにタイプhttps://msdn.microsoft.com/en-GB/library/dd264736.aspx