【发布时间】:2012-10-26 07:25:46
【问题描述】:
我今天早些时候面对this problem,由于找不到满意的解决方案,我决定改变我的类设计,并拥有单独的属性,例如标签1、标签2、标签3等。
我的主要问题是我需要将网格绑定到包含其他属性列表的对象,并且我需要将列表中的每个项目显示为单独的列,这是我无法做到的。因此,我诉诸单独声明变量。 Original question is here...
现在,我面临着每个程序员在某个时间点可能遇到的最常见的设计问题之一。这是演示它的代码,
for (int i = 0; i < tags.Length; ++i) // Length not known here.
{
if(i==0){
tag1 = tags[0];
}
else if(i == 1){
tag2 = tags[1];
}
else if(i == 2){
tag3 = tags[2];
}
....
}
这里tags是一个字符串数组。
我想知道是否有更优雅的方法来做到这一点。另一件需要注意的是,这个循环的效率随着它的进行而降低,因为随着更多的迭代它必须检查更多的条件。如果我们可以在条件变为 true 一次 后将其删除,那么它将加快每次迭代,因为我们知道每个条件在所有迭代中只会变为 true 一次
【问题讨论】:
-
出于好奇,为什么需要将
tags的元素分配给各个变量?数组的重点是防止我们需要连续序列的单个变量... -
詹姆斯说了什么。好像这是在倒退。
-
那是什么
tags.Length[]???它似乎无效。 -
@James,我在文本框中以逗号分隔值的形式从用户那里收到此信息,然后我继续使用 string.Split(',') 拆分字符串以获取该数组。跨度>
-
如果您想将它们分配给更有意义的变量,那很好,但您应该按照@MiguelAngelo 的建议直接执行。
标签: c# c#-4.0 design-patterns