返回空集合

Rob*_*Rob 5 c# linq

看看这个测试:

[TestFixture]
public class Quick_test
{
   [Test]
   public void Test()
   {
      Assert.AreEqual(0, GetByYield().Count());
      Assert.AreEqual(0, GetByEnumerable().Count());
   }

   private IEnumerable<string> GetByYield()
   {
      yield break;
   }

   private IEnumerable<string> GetByEnumerable()
   {
      return Enumerable.Empty<string>();
   }
}
Run Code Online (Sandbox Code Playgroud)

当我编写存根方法时,我通常使用Enumerable.Empty方法.我偶然发现了我编写的一些旧代码,其中我使用了yield方式.

这让我想知道:

  • 哪个在视觉上更吸引其他开发者?
  • 是否有任何隐藏的陷阱会导致我们偏爱另一个?

谢谢!

Mat*_*ton 6

我更喜欢任何为开发人员提供最清晰意义的方法.就个人而言,我甚至不知道收益率会下降; line是的,所以返回'Enumerable.Empty();`在我的任何代码库中都是首选.

  • 我*知道什么是收益中断,但我仍然认为Enumerable.Empty()是一个更清晰的意图表达. (2认同)