Lambda表达式:CS到VB.Net

时间:2011-08-24 22:18:29

标签: c# vb.net lambda

我在这个声明中建立了愚蠢....也许它只是太多时间/天来做C#到VB.Net的转换,但我在这个转换上画了一个空白。

非常感谢任何帮助。

List<string> sColors = new List<string>(this.CustomPaletteValues.Split(','));
try {
   List<Color> colors = sColors.ConvertAll<Color>(s => (Color)(new ColorConverter().ConvertFromString(s)));    

到目前为止:

Dim colors As List(Of Color) = sColors.ConvertAll(Of Color)(....)

正如你所看到的那样,我正在用一块砖墙撞击lambda的内容。

3 个答案:

答案 0 :(得分:1)

sColors.ConvertAll(Of Color)(Function(s) DirectCast(((New ColorConverter).ConvertFromString(s)), Color));

答案 1 :(得分:1)

原谅线路断裂,但我相信这就是你想要的。

Dim colors As List(Of Color) = sColors.ConvertAll(Of Color)(
    Function(s) DirectCast((New ColorConverter).ConvertFromString(s), Color)
)

答案 2 :(得分:1)

您可以使用隐式输入以更短的方式编写它:

    Dim colors = sColors.ConvertAll(Of Color)(
        Function(s) (New ColorConverter).ConvertFromString(s))