C#でそれを行うことは可能ですか?
Queue<string> helperStrings = {"right", "left", "up", "down"};
または、そのために最初に配列を作成する必要がありますか?
C#でそれを行うことは可能ですか?
Queue<string> helperStrings = {"right", "left", "up", "down"};
または、そのために最初に配列を作成する必要がありますか?
いいえ、その方法でキューを初期化することはできません。
とにかく、あなたはこのようなことをすることができます:
var q = new Queue<string>( new[]{ "A", "B", "C" });
これは、明らかに、配列を通過することを意味します。
C#でそれを行うことは可能ですか?
残念だけど違う。
C#でのコレクション初期化子のルールは、オブジェクトが(1)IEnumerableを実装し、(2)Addメソッドを持っている必要があるということです。コレクション初期化子
new C(q) { r, s, t }
として書き直されます
temp = new C(q);
temp.Add(r);
temp.Add(s);
temp.Add(t);
そして、結果として、一時的なものは何でもなります。
Queue<T>
IEnumerableを実装しますが、Addメソッドはありません。Enqueueメソッドがあります。
Queue<T>
'Add'メソッドを実装していないため、初期化できるインスタンス化する必要がありIEnumerable<string>
ます。
Queue<string> helperStrings
= new Queue<string>(new List<string>() { "right", "left", "up", "down" });