3

私は、現在PHPになる前に、私の主要言語であるC#を学んでいます。C# で空の配列を作成する方法 (または場合) を考えていました。

PHP では、配列を作成し、それに任意の数のエントリを追加できます。

$multiples=array();
$multiples[] = 1;
$multiples[] = 2;
$multiples[] = 3;

C#では、似たようなことをするのに苦労しています:

int[] arraynums = new int[];
arraynums[] = 1;
arraynums[] = 2;
arraynums[] = 3;

「配列の作成には配列サイズまたは配列初期化子が必要です」というエラーが表示されます。エントリー数がわからない場合、どうすればいいですか?これを回避する方法はありますか?

4

5 に答える 5

5

サイズが事前にわからない場合List<T>は、配列の代わりに a を使用します。C# の配列は固定サイズであり、作成時にサイズを指定する必要があります。

var arrayNums = new List<int>();
arrayNums.Add(1);
arrayNums.Add(2);

アイテムを追加したら、配列の場合と同じように、インデックスでそれらを抽出できます。

int secondNumber = arrayNums[1];
于 2013-11-01T23:06:05.220 に答える
1

c# 配列には静的サイズがあります。

int[] arraynums = new int[3];

また

int[] arraynums = {1, 2, 3}

動的サイズの配列を使用する場合は、ArrayList または List を使用する必要があります。

于 2013-11-01T23:15:02.773 に答える
1

List<T>やなどの別のコレクションを使用することをお勧めしDictionary<TKey, TValue>ます。PHP でコレクションを配列と呼ぶのは、単なる誤称です。配列は、1 つの型のみを含む連続した固定サイズのメモリ ブロックであり、特定のインデックスのオフセットを計算することによって直接アクセスを提供します。PHP のデータ型は、これらのことを何も行いません。

例;

List<int> my_ints = new List<int>();
my_ints.Add(500);


Dictionary<string, int> ids = new Dictionary<string, int>();
ids.Add("Evan", 1);

int evansId = ids["Evan"];

配列を使用する場合の例。

string[] lines = File.ReadAllLines(myPath);
for (int i = 0; i < lines.Length; i++)
    // i perform better than other collections here!
于 2013-11-01T23:16:34.990 に答える
0

この投稿を試してください: C# の動的配列。最初の回答には、データにインデックスを付ける別の方法を示すリンクがいくつかあります。C# では、動的配列を作成する方法はありませんが、これらのリンクはいくつかの回避策を示しています。

于 2013-11-01T23:15:11.367 に答える