自动初始化C#列表
我正在创build一个新的C#列表( List<double>
)。 有没有办法,除了在列表上循环,初始化所有的起始值为0?
除了提供的function解决scheme(使用Enumerable
类上的静态方法)之外,还可以在构造函数中传递double
s数组。
var tenDoubles = new List<double>(new double[10]);
这是可行的,因为double
的默认值已经是0了,并且可能会稍微好一些。
您可以使用初始化程序:
var listInt = new List<int> {4, 5, 6, 7}; var listString = new List<string> {"string1", "hello", "world"}; var listCustomObjects = new List<Animal> {new Cat(), new Dog(), new Horse()};
所以你可以使用这个:
var listInt = new List<double> {0.0, 0.0, 0.0, 0.0};
否则,使用默认的构造函数,List将是空的。
使用此代码:
Enumerable.Repeat(0d, 25).ToList(); new List<double>(new double[25]); //Array elements default to 0
一种可能性是使用Enumerable.Range
:
int capacity; var list = Enumerable.Range(0, capacity).Select(i => 0d).ToList();
另一个是:
int capacity; var list = new List<double>(new double[capacity]);
有点晚了,但也许还是有趣的:使用LINQ,试试
var initializedList = new double[10].ToList()
…希望避免复制列表(这是由LINQ现在)。
这应该是迈克尔·梅多斯的回答评论,但我缺乏声誉。
对于更复杂的types:
List<Customer> listOfCustomers = new List<Customer> { { Id = 1, Name="Dave", City="Sarasota" }, { Id = 2, Name="John", City="Tampa" }, { Id = 3, Name="Abe", City="Miami" } };
从这里: 大卫海登的博客
- 如何从它的hexRGBstring创build一个System.Drawing.Color?
- 如何获取代码所在的程序集的path?
- 如何启用“启用.NET Framework源码步进”?
- 为什么我的configurationpipe理器在Visual Studio 2010中被禁用?
- 是否有可能在.NET运行时编译和执行新的代码?
- 我是否需要付费才能开发或部署.NET应用程序?
- 是否有Visual Studio的configurationpipe理器的替代/插件?
- 什么时候应该使用Tracing vs Logger.NET,Enterprise Library,log4net或Ukadc.Diagnostics?
- 设置System.Drawing.Color值