我目前有这样的事情:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
public List<Person> CreatePersons(int numberOfPersons)
{
var persons = new List<Person>();
for (int i = 0; i < numberOfPersons; i++)
{
persons.Add(new Person())
}
return persons;
}
Run Code Online (Sandbox Code Playgroud)
我知道,如果我要使用,array那么我可以这样做:
var persons = new Person[numberOfPersons];
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我猜一个数组可能在内部完全相同,使用一个循环来创建这个数组,但使用不同的表示法.但现在这不是一个问题,对于这个问题,我只是对一个更简单的符号感兴趣.
怎么样,
var persons = Enumerable.Range(0, numberOfPersons).Select(i => new Person()).ToList();
Run Code Online (Sandbox Code Playgroud)
你也可以做得越钝,
var persons = Enumerable
.Repeat<Func<Person>>(() => new Person(), numberOfPersons)
.Select(f => f())
.ToList();
Run Code Online (Sandbox Code Playgroud)
最后,我发现for循环更容易理解,并且执行起来更快.
var persons = new List<Person>(numberOfPersons);
for (int i = 0; i < numberOfPersons; i++)
{
persons.Add(new Person())
}
Run Code Online (Sandbox Code Playgroud)