相关疑难解决方法(0)

是否更好地使用Enumerable.Empty <T>()而不是新的List <T>()来初始化IEnumerable <T>?

假设你有一个人类:

public class Person
{
   public string Name { get; set;}
   public IEnumerable<Role> Roles {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我显然应该在构造函数中实例化角色.现在,我曾经使用像这样的List:

public Person()
{
   Roles = new List<Role>();
}
Run Code Online (Sandbox Code Playgroud)

但我在System.Linq命名空间中发现了这种静态方法

IEnumerable<T> Enumerable.Empty<T>();
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

Empty(TResult)()方法缓存一个空的序列TResult.当它返回的对象被枚举时,它不会产生任何元素.

在某些情况下,此方法对于将空序列传递给用户定义的方法非常有用 IEnumerable(T).它还可以用于为诸如的方法生成中性元素Union.有关此用法的示例,请参阅示例部分

那么编写这样的构造函数会更好吗?你用它吗?为什么?如果没有,为什么不呢?

public Person()
{
   Roles = Enumerable.Empty<Role>();
}
Run Code Online (Sandbox Code Playgroud)

c# linq constructor

133
推荐指数
7
解决办法
3万
查看次数

标签 统计

c# ×1

constructor ×1

linq ×1