首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实例化数组,一次实例化每个成员

实例化数组,一次实例化每个成员
EN

Stack Overflow用户
提问于 2011-05-19 17:27:29
回答 4查看 340关注 0票数 3

考虑以下情况:

代码语言:javascript
运行
复制
ColumnDefinition[] columns = new ColumnDefinition[2];
columns[0] = new ColumnDefinition();
columns[1] = new ColumnDefinition();

在将列作为ColumnDefinition数组实例化后,我需要显式实例化每个数组元素。当然,这可以使用循环来完成,但我想知道是否有更简单的方法,可以在实例化Array类型本身之后立即实例化每个元素。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-19 17:30:24

你可以应用一些LINQ:

代码语言:javascript
运行
复制
var columns = Enumerable.Repeat(new ColumnDefinition(), 10).ToArray();

调整传递给Repeat的数组大小的计数。然而,这将导致在数组的每个元素中保存相同的对象。因此,可能需要重复创建:

代码语言:javascript
运行
复制
var columns = Enumerable.Repeat(0, 10).Select(i => new ColumnDefinition()).ToArray();
票数 3
EN

Stack Overflow用户

发布于 2011-05-19 17:29:10

代码语言:javascript
运行
复制
var columns = new []{new ColumnDefinition(), new ColumnDefinition()};

按照预期工作。

票数 1
EN

Stack Overflow用户

发布于 2011-05-19 17:32:35

据我所知,任何使用简单for循环的解决方案都会有糟糕的性能,而且for循环只会占用3行代码。

代码语言:javascript
运行
复制
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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6056516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档