2017-05-04 108 views
-2

這裏是工作的VB代碼,我選擇要寫入文件的字典的值。將VB.NET Lambda轉換爲C#

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) 

我試圖轉換LAMBDA 1號線到C#和走到這一步:

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

就是一切從dmap.Select到底有紅色下劃線的問題。

這裏是這樣說的:

System.Collections.Generic.Dictionary不包含「選擇」接受型詞典的第一個參數可以發現一個定義。

這裏有什麼問題?非常感謝 !

+2

你得到什麼異常? –

+4

'這裏有什麼問題?'你應該*我們*問題/例外/實際結果是不正確的。請閱讀[問]並參加[導遊] – Plutonix

+0

我沒有看到問題。這應該是一個有趣的猜謎遊戲或什麼? –

回答

3

根據您在評論中提到的錯誤,它說:

System.Collections.Generic.Dictionary不包含「選擇」接受型詞典的第一個參數可以發現一個定義。

這很可能是因爲您缺少對Linq庫的引用​​,該引用擴展實現IEnumerablethis and other methods的類。

嘗試添加此到您的代碼文件的頂部:

using System.Linq;