考虑以下情况:
ColumnDefinition[] columns = new ColumnDefinition[2];
columns[0] = new ColumnDefinition();
columns[1] = new ColumnDefinition();在将列作为ColumnDefinition数组实例化后,我需要显式实例化每个数组元素。当然,这可以使用循环来完成,但我想知道是否有更简单的方法,可以在实例化Array类型本身之后立即实例化每个元素。
发布于 2011-05-19 17:30:24
你可以应用一些LINQ:
var columns = Enumerable.Repeat(new ColumnDefinition(), 10).ToArray();调整传递给Repeat的数组大小的计数。然而,这将导致在数组的每个元素中保存相同的对象。因此,可能需要重复创建:
var columns = Enumerable.Repeat(0, 10).Select(i => new ColumnDefinition()).ToArray();发布于 2011-05-19 17:29:10
var columns = new []{new ColumnDefinition(), new ColumnDefinition()};按照预期工作。
发布于 2011-05-19 17:32:35
据我所知,任何使用简单for循环的解决方案都会有糟糕的性能,而且for循环只会占用3行代码。
var columns = new ColumnDefinition[2];
for (int i = 0; i <= columns.Count(); i++) {
columns[i] = new ColumnDefinition();
}
// This is also a shorthand which compiles to above but only valid for types with
// default contructor as above (i.e. string[] array cannot be initialized with this)
columns.Initialize();https://stackoverflow.com/questions/6056516
复制相似问题