有可能在 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>
没有实现“添加”方法,因此您需要实例化一个IEnumerable<string>
可以从中初始化的方法:
Queue<string> helperStrings
= new Queue<string>(new List<string>() { "right", "left", "up", "down" });