我可能错过了 C# 中数组构造语法的一些内容。如果我有以下函数(感谢 c# 4 中的类型方差功能):
IEnumerable<IEnumerable<T>> test<T>()
{
return new List<List<T>>();
}
如何编写类似的实例化数组的数组?
最佳答案
IEnumerable<IEnumerable<T>> test<T>()
{
return new [] { new T[] {} };
}
<子>
我注意到 Mono 编译器曾经有一个错误(至少 2.6.7 gmcs 会崩溃......),需要你拼写 new IEnumerable<T>[] { new T[] {}}
;这不再是问题,例如单声道2.11
或者
您可以使用yield block (效率较低)
IEnumerable<IEnumerable<T>> test<T>()
{
yield return new T[] {};
}
Enumerable.Empty<>
你知道Enumerable.Empty<>
吗? ?
IEnumerable<IEnumerable<T>> test<T>()
{
return Enumerable.Empty<IEnumerable<T>>();
}
关于c# - 在 C# 中使用数组实例化 IEnumerable<IEnumerable<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634615/