2017-09-15 32 views
-2

我有开关箱(和一种情况下都以列表中的对象被添加4〜5个元素)的一些硬编码值和case语句是450 +次。最好的方式来执行450开关的情况下保持性能考虑

我不想使用开关的情况下(实际上是增加的代码长度)来实现这一点。 下面是示例代码:

Case Set = "A" 
    obj.Add("1") 
    obj.Add("2") 
    obj.Add("3") 
    obj.Add("4") 
    obj.Add("5") 
Case Set = "B" 
    obj.Add("66") 
    obj.Add("77") 
Case Set = "C" 
    obj.Add("888") 
    obj.Add("999") 
    obj.Add("111") 

每个case语句是不同的,机箱内部的要素是不同

我的产品在Windows产品用vb.net。

任何其他替代方法来实现这一点。

建议者居多!!!!!

+1

如果不知道每个案例的作用,很难回答。我们能看到一个例子吗?也许他们设置了一个变量,也许他们调用了一个方法,也许它们都是,也许它们都不是。 –

+0

@the_lotus:请看帖子,我已经用示例代码更新了它。这仅仅是3种情况,有450种情况,每种都有不同的元素添加到List obj中。 –

回答

1

您可以创建一个Dictionary(字符串,列表(一个String)的)。字典的键是“A”,“B”,“C”,列表包含你想添加的元素。如果你想删除静态字典创建

Dim key As String = "A" 
obj.addRange(dic(key)) 

,你可以很容易地建立基于文件或数据库字典:

Dim dic As New Dictionary(of String, List(of String)) 
dic.add("A", new List(of String)({"1", "2"})) 
dic.add("B", new List(of String)({"66", "77"})) 

以后你可以做到这一点。