【问题标题】:Enumerable.Empty<T>() equivalent for IList? [duplicate]IList 的 Enumerable.Empty<T>() 等效项? [复制]
【发布时间】:2016-10-06 08:58:20
【问题描述】:

在某些情况下,我必须在方法中返回一个空的项目列表。 大多数情况下,我会返回一个IEnumerable&lt;T&gt;,所以Enumerable.Empty&lt;T&gt;() 完全可以完成这项工作。

但我有一种情况,我必须绝对返回一个 IList&lt;T&gt; 实例(我们可以使用 IEnumerable,但这会导致代码效率低得多)。

我没有找到IList 的等效项。我可以完美地想象为空列表创建自己的 Singleton 提供程序,但我想知道我是否错过了什么?

【问题讨论】:

  • 你为什么说代码效率会低?
  • 查看此解决方案:stackoverflow.com/a/6802982/6469077
  • 返回新列表()
  • @Vignesh.N 因为我通常会有很多项目,而且我必须从列表中删除其中的一些,所以这意味着我必须从 IEnumerable 创建一个 List 到开始使用。
  • @heinzbeinz 和@TimSchmelter:目标不是必须在每个案例上都创建这个对象,而是要有一个可以重复使用的空对象,比如Enumerable.Empty&lt;T&gt;()

标签: c# .net list ienumerable


【解决方案1】:

由于 Array 正在实现 IList 使用

Array.Empty<T>()

【讨论】:

  • 附加信息:这仅适用于您使用 .net 4.6 或更新版本。
猜你喜欢
  • 2011-02-11
  • 2021-07-12
  • 1970-01-01
  • 2014-04-18
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
相关资源
最近更新 更多