gpt4 book ai didi

c# - 使用非空值初始化 List

转载 作者:太空狗 更新时间:2023-10-29 19:54:56 24 4
gpt4 key购买 nike

我正在寻找一种方法来使用一组值(在 C# 中)初始化 List 类型的变量。是的,有对象初始化,但这需要为您想要的每个值创建一个新对象,我宁愿避免它。

这是一个示例:

class MyObject
{
public string Name {get;set;}
}
List<MyObject> OldNames = new List<MyObject>(10);
List<MyObject> NewNames = new List<MyObject>(5);

这很好,但 OldNames 包含 10 个对 MyObject 类型对象的空引用。

使用列表初始化程序我可以这样做:

List<MyObject> OldNames = new List<MyObject>{
new MyObject(),
new MyObject(),
new MyObject(),
etc.

这有点痛苦,因为我有许多列表变量和各种大小要初始化(例如,一个变量是一个包含 26 个对象的列表。是的,我可以编写一个函数或扩展来为我执行此初始化(在在我提供大小的地方循环),但同样这是我不一定要编写的代码。

我希望有某种 lamdba 或 LINQ 表达式或其他东西来将对象列表初始化为值而不是空值。

谢谢!

最佳答案

使用 Enumerable.Range LINQ 方法指定迭代次数。

List<MyObject> NewNames = Enumerable.Range(1,5).Select(i => new MyObject()).ToList();

这里的数字 1 是任意的,因为没有以任何方式使用索引器。

关于c# - 使用非空值初始化 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943482/

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