将VB.NET Lambda转换为C#

时间:2017-05-04 22:54:08

标签: c# vb.net dictionary lambda

这是工作的VB代码,我选择要写入文件的Dictionary的值。

Dim csv As String = String.Join(Environment.NewLine, 
    dmap.Select(Function(d) d.Key & "," & d.Value))

Dim filePath As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\myfile.csv"

If File.Exists(filePath) Then
    File.Delete(filePath)
End If
        '
File.WriteAllText(filePath, csv)

我尝试将第1行的Lambda转换为C#,并且做到了这一点:

string csv = string.Join(Environment.NewLine, dmap.Select(d => d.Key + "," + d.Value));

从红色开始强调从dmap.Select到结尾的所有问题。

以下是它的说法:

  

System.Collections.Generic.Dictionary不包含'选择'的定义。接受类型为Dictionary的第一个参数可以找到。

这是什么问题?非常感谢!

1 个答案:

答案 0 :(得分:3)

根据您在评论中提到的错误,它说:

  

System.Collections.Generic.Dictionary不包含'选择'的定义。接受类型为Dictionary的第一个参数可以找到。

这很可能是因为您缺少对Linq库的引用​​,Linq库扩展了使用this and other methods实现IEnumerable的类。

尝试将其添加到代码文件的顶部:

using System.Linq;