如何在VB.net中编写这个lambda select方法?

时间:2012-05-22 18:48:14

标签: vb.net linq .net-3.5 lambda

因为我试过这个:

Dim exampleItems As Dictionary(Of String, String) = New Dictionary(Of String, String)
Dim blah = exampleItems.Select (Function(x) New (x.Key, x.Value)).ToList 'error here

但是我遇到了语法错误,我见过的所有例子都在C#中。

1 个答案:

答案 0 :(得分:35)

这将是:

Dim blah = exampleItems.Select (Function(x) New With { .Key = x.Key, .Value = x.Value }).ToList 

有关详细信息,请参阅Anonymous Types。 (根据用途,您可能还希望使用Key keyword标记键或值。)

话虽如此,Dictionary(Of TKey, Of TValue)已经是IEnumerable(Of KeyValuePair(Of TKey, Of TValue),所以您也可以这样做:

Dim blah = exampleItems.ToList

您将拥有KeyValuePair列表,该列表已具有KeyValue属性。这实际上意味着没有必要制作匿名类型。