我可能会错过c#中的数组构造语法。如果我有以下功能(感谢c#4中的类型方差功能):
IEnumerable<IEnumerable<T>> test<T>()
{
return new List<List<T>>();
}
如何编写实例化数组数组的类似文件?
答案 0 :(得分:3)
IEnumerable<IEnumerable<T>> test<T>()
{
return new [] { new T[] {} };
}
<子>
我注意到单声道编译器中曾经存在一个错误(至少,2.6.7 gmcs会崩溃...),需要你拼写new IEnumerable<T>[] { new T[] {}}
;这不再是例如问题。单声道2.11
子>
你可以使用yield块(效率较低)
IEnumerable<IEnumerable<T>> test<T>()
{
yield return new T[] {};
}
Enumerable.Empty<>
您知道Enumerable.Empty<>
吗?
IEnumerable<IEnumerable<T>> test<T>()
{
return Enumerable.Empty<IEnumerable<T>>();
}