IList是否有类似于Enumerable.Empty<T>()的方法?

15

有时候我需要在方法中返回一个空的项目列表。大多数情况下,我会返回一个IEnumerable<T>,因此Enumerable.Empty<T>()能够完美地胜任。

但是,在某种情况下,我必须绝对地返回一个 IList<T> 实例(我们可以使用 IEnumerable,但这会导致代码效率较低)。

我没有找到与 IList 相对应的等价物。我可以想象自己创建一个提供空列表的单例,但我想知道是否有我错过的东西?


1
为什么你说代码会更低效? - Vignesh.N
2
检查此解决方案:https://dev59.com/7G865IYBdhLWcg3wSMcw#6802982 - Nico
3
返回一个新的T类型列表。 - Tim Schmelter
@Vignesh.N 因为我通常会有很多项,而且我将不得不从列表中删除其中一些,所以这意味着我必须从IEnumerable创建一个List来开始处理。 - J4N
@heinzbeinz 和 @TimSchmelter:目标不是在每个情况下都创建此对象,而是拥有一个可以重复使用的空对象,就像 Enumerable.Empty<T>() 一样。 - J4N
1个回答

26

由于 Array 实现了 IList 接口,请使用它。

Array.Empty<T>()

2
附加信息:仅适用于使用 .net 4.6 或更高版本的用户。 - haindl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接