我正在寻找一种方法来初始化List类型的变量与一组值(在C#中).是的,有对象初始化但是需要为你想要的每个值一个新对象,我宁愿避免它.
这是一个示例:
class MyObject
{
public string Name {get;set;}
}
List<MyObject> OldNames = new List<MyObject>(10);
List<MyObject> NewNames = new List<MyObject>(5);
Run Code Online (Sandbox Code Playgroud)
这很好,但是OldNames包含对MyObject类型对象的10个空引用.
使用列表初始化程序,我可以这样做:
List<MyObject> OldNames = new List<MyObject>{
new MyObject(),
new MyObject(),
new MyObject(),
etc.
Run Code Online (Sandbox Code Playgroud)
这有点痛苦,因为我有许多列表变量和各种大小来初始化(例如,一个变量是26个对象的列表.是的,我可以编写一个函数或者扩展来为我做这个初始化(在我循环的地方)提供大小)但是这个代码我不一定要写.
我希望有一些lamdba或LINQ表达式或者用于将对象列表初始化为值而不是null的东西.
谢谢!
Rot*_*tem 15
使用Enumerable.RangeLINQ方法指定迭代次数.
List<MyObject> NewNames = Enumerable.Range(1,5).Select(i => new MyObject()).ToList();
Run Code Online (Sandbox Code Playgroud)
1这里的数字是任意的,因为索引器没有以任何方式使用.
| 归档时间: |
|
| 查看次数: |
3300 次 |
| 最近记录: |