gpt4 book ai didi

c# - 有没有一种简单的方法可以创建相同对象的列表而不使用循环?

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:05 25 4
gpt4 key购买 nike

我目前有这样的事情:

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;
}


我知道如果我要使用 array,那么我可以这样做:

var persons = new Person[numberOfPersons];


我的问题是:


有没有一种简单/直接的方法来创建对象列表而不使用循环?


我猜想数组可能在内部执行与使用循环创建此数组完全相同的操作,但是符号不同。但这不是现在要考虑的问题,对于这个问题,我只是对一个更简单的表示法感兴趣。

最佳答案

怎么样,

var persons  = Enumerable.Range(0, numberOfPersons).Select(i => new Person()).ToList();




您也可以做得越钝,

var persons = Enumerable
.Repeat<Func<Person>>(() => new Person(), numberOfPersons)
.Select(f => f())
.ToList();




最后,我发现 for循环更容易理解,并且执行速度更快。

var persons = new List<Person>(numberOfPersons);
for (int i = 0; i < numberOfPersons; i++)
{
persons.Add(new Person())
}

关于c# - 有没有一种简单的方法可以创建相同对象的列表而不使用循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54530789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com