2017-10-16 2 views
0

これは大したことではないかもしれませんが、誰かが次のコードのint(s)のリストを作成する大きな違いは何かを教えてください。私にとって最初の方法はコンストラクタを使用していますが、そこにnew int[]の点を得ていないのですか?第2の方法で完全に混乱してしまった! IEnumerableパラメータとC#Intリストの作成に関する問題

List<int> list1 = new List<int>(new int[]{ 1, 2, 3 }); 
List<int> list2 = new List<int>() { 1, 2, 3 }; 

答えて

3

List<int> list1 = new List<int>(new int[]{ 1, 2, 3 });calls constructor

List<int> list2 = new List<int>() { 1, 2, 3 }; 

documentationから

list2.Add(1); 
list2.Add(2); 
list2.Add(3); 

に等しい:

コレクション初期化子は、あなたが IEnumerableを実装し、Addを持っているコレクション型を初期化するときには、1つまたは複数の要素 初期化子を指定できますインスタンスとして適切な署名を付けて メソッドまたは拡張子 方法。要素の初期化子は、 単純値、式またはオブジェクト初期化子にすることができます。 コレクションの初期化子を使用すると、 のAddメソッドを複数回呼び出してソースコードを指定する必要はありません。コンパイラは 呼び出しを追加します。

+0

ありがとうございますが、最初の方法はどうですか?そこに 'new int []'を使用するポイントは何ですか? – Behseini

+0

@Behseiniそれは簡単です。リストにはienumerableを受け入れるコンストラクタがあります。 – Backs

+0

@Behseini、intArray.ToList();を呼び出してください。 – qxg

関連する問題