在这种情况下,Fluent API 看起来更具可读性,但不太容易看出代码的意图:
var list = Enumerable.Range(0, 10).Select(_ => new MyObject()).ToList();
简单的 if 循环快速且易于理解,但它也隐藏了意图 - 创建 10 个项目的列表
List<MyObject> list = new List<MyObject>();
for (int i = 0; i < 10; i++)
list.Add(new MyObject());
最好的可读性是构建器,它将描述您的意图
public class Builder<T>
where T : new()
{
public static IList<T> CreateListOfSize(int size)
{
List<T> list = new List<T>();
for (int i = 0; i < size; i++)
list.Add(new T());
return list;
}
}
用法:
var list = Builder<MyObject>.CreateListOfSize(10);
这个解决方案速度很快,就像简单的循环一样,意图非常明确。同样在这种情况下,我们要编写的代码量最少。