将动态生成的对象放在数组(或集合)中?

时间:2011-04-11 14:45:27

标签: asp.net vb.net arrays variables collections

我为自定义对象创建了一个自定义类。我实例化如下:

Dim class_info as New class_level

然后我使用LINQ-to-Entities查询来提取一些信息:

Dim get_config = From p in dbContext.Configs _
    Where p.Type = "classdate" _
    Select p

然后我有一个For..Each循环,我想从这个信息中创建一个对象的实例,如下所示:

    For Each row In get_config
        Dim the_row = row
        class_info.class_level = the_row.Description
        class_info.dateo = the_row.dateValue
        class_info.timeo = the_row.timeValue
        class_info.datec = the_row.dateValue
        class_info.timec = the_row.timeValue
        class_info.query = "q" + the_row.Description
    Next

现在,我有两个问题。首先,现在这只是一次又一次地覆盖相同的对象属性。我需要以某种方式动态命名对象。然后,我需要将这些对象放在一个数组中,以便我可以遍历它们......

1 个答案:

答案 0 :(得分:3)

您真正应该做的是直接将查询投射到类型中:

Dim class_infos = From p in dbContext.Configs _
                  Where p.Type = "classdate" _
                  Select New class_level With {
                     .Prop = p.Prop
                     ' other properties here
                  }

然后你会得到一个IEnumerable class_level,我认为你想要的是什么?

您应该考虑更好地命名,因为很难理解您在这里使用的内容。