自动初始化C#列表
答
除了所提供的功能性的解决方案(使用对Enumerable
类的静态方法),则可以在构造传递的double
秒的阵列。
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};
否则,使用默认构造函数,该列表将是空的。
答
使用此代码:
Enumerable.Repeat(0d, 25).ToList();
new List<double>(new double[25]); //Array elements default to 0
+0
我认为这更多的是OP所期待的。 – 2009-07-09 15:07:20
答
对于更复杂的类型:
List<Customer> listOfCustomers =
new List<Customer> {
{ Id = 1, Name="Dave", City="Sarasota" },
{ Id = 2, Name="John", City="Tampa" },
{ Id = 3, Name="Abe", City="Miami" }
};
答
一种可能性是使用:
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)。
这应该是迈克尔梅多斯的回答评论,但我缺乏声望。
这是可行的,但.net中的列表没有定义的大小,因此其类型为pointletss – DevelopingChris 2009-07-09 15:06:44