1

我有一个List(Of String)对象,需要根据字符串的值创建一个新集合。新集合将是一个具有两个字符串字段的自定义类 - 调用它们KeyValue(但它不是内置的 KeyValue 类,它是一个自定义类)。

的所有值Key都相同,只是Value我想从字符串列表中获取。例子:

Dim slValues = New List(Of String)({"Cod", "Halibut", "Herring"})
Dim myList   = New List(Of myClass)( ... amazing initialisation line here? )

Class myClass
  Public Key As String   ' This will always be "Fish"
  Public Value As String ' This will be the fish name.
End Class

(请注意,我实际上无法访问我正在使用的类,因此不能将其更改Public Key As String = "Fish"为默认值。Key必须在运行时设置。)

我当然可以做一个循环并手动完成,但我想知道是否有一种奇思妙想的方式来实现这一点作为初始化行的一部分?

4

3 回答 3

1

这个怎么样

Dim myList = slValues.ConvertAll(Of myClass)( _
    Function(s) New YourClass With {.Key = "Fish", .Value = s})
于 2012-08-01T08:51:27.037 回答
1

这是使用 LinqSelect函数替代 Jodrell 的答案:

Dim myList = slValues.Select(Function(fish) New CustomClass With {.Key = "Fish", .Value=fish}).ToList()
于 2012-08-01T14:12:55.347 回答
0
from x in Enumerable.Range(1, slValues.count-1).ToArray 
select new KeyValuePair(of string,myClass) with {.Key=slValues(x),.Value=myList(x)}

希望能帮助到你。

于 2012-08-01T08:54:18.170 回答