是否有null版本但列表?

时间:2018-01-26 08:28:10

标签: c# null generic-list mspec

我正在尝试编写单元测试。

我将此部分作为工作版本的一部分:

List<MyClass> queryResult = new List<MyClass>(){};

A.CallTo(() => _dataContext.GetAll<MyClass>()).Returns(queryResult.AsQueryable());

但是,我宁愿使用“null”而不是“queryResult.AsQueryable()”,那么就不需要创建一个空列表。

但GetAll会根据事物的外观返回一个空或满的列表。因此,null将不起作用。

我可以使用“List.Empty”这样的东西吗?

谢谢

2 个答案:

答案 0 :(得分:8)

Array.Empty<T>()Enumerable.Empty<T>()可能适合您。它们都没有为每个调用分配一个新对象(它们都由泛型类T[]EmptyArray<T>.Value上的静态EmptyEnumerable<T>.Instance字段支持,尽管这些都是实现细节)

答案 1 :(得分:0)

您可以使用

Enumerable.Empty<MyClass>().ToList()

但在这种情况下我看不出任何差异。