C# 是否有一个版本的空,但列表?
我正在尝试编写一个单元测试 我将此部分作为工作版本的一部分:C# 是否有一个版本的空,但列表?,c#,null,generic-list,mspec,C#,Null,Generic List,Mspec,我正在尝试编写一个单元测试 我将此部分作为工作版本的一部分: List<MyClass> queryResult = new List<MyClass>(){}; A.CallTo(() => _dataContext.GetAll<MyClass>()).Returns(queryResult.AsQueryable()); List queryResult=newlist(){}; A.CallTo(()=>_dataContext.GetAll
List<MyClass> queryResult = new List<MyClass>(){};
A.CallTo(() => _dataContext.GetAll<MyClass>()).Returns(queryResult.AsQueryable());
List queryResult=newlist(){};
A.CallTo(()=>_dataContext.GetAll()).Returns(queryResult.AsQueryable());
但是,我宁愿使用“null”之类的内容,而不是“queryResult.AsQueryable()”,这样就不需要创建空列表
但是GetAll将根据事物的外观返回一个空的或满的列表。因此,null不起作用
有没有像“List.Empty”这样的东西我可以用
谢谢有
Array.Empty()
和Enumerable.Empty()
可能适合您。它们都没有为每次调用分配新对象(它们都由泛型类上的静态T[]
字段支持-EmptyArray.Value
或EmptyEnumerable.Instance
,尽管这两个都是实现细节)您可以使用
Enumerable.Empty<MyClass>().ToList()
Enumerable.Empty().ToList()
但是我看不出在这种情况下有什么不同。List.Empty与空列表有什么不同?我只想说它应该返回一个空列表,而不必创建对象。可能并没有办法,我只是想知道是否有。你们不能检查一下空列表也是一个对象吗?所以你们将被迫以任何方式创建一个对象
new List
是一个wayorEnumerable.Empty()
这正是我要找的东西,谢谢。它们需要特定的导入才能运行吗?@KieranMeliaArray.Empty
仅在.net 4.6中可用,但不需要任何特定的导入(几乎可以肯定您已经使用系统了),谢谢。我尝试了数组。为空,但它表示数组不包含Empty@KieranMelia那你做错了什么。试试这个:var a=System.Array.Empty()与newlist()
相比,code>相当冗长。