2012-07-18 50 views
0

我是新來的LINQ返回的結果爲詞典<字符串,字符串>。我要查詢的文件的文件夾中,並返回結果爲Dictionary.Here是我的代碼如何使用LINQ在C#

var queryResult = (from d in directoryInfo.GetFiles() 
        where d.Name.EndsWith(suffix) 
        select new Dictionary<string, string> 
        { 
         {d.Name,""}, 
        }); 

但似乎不正確。

回答

0

GetFiles()返回FileInfo陣列。

這不是從你的問題清楚你想擁有如字典鍵,你想有作爲值什麼。如果你想要的名字既,你可以做

var queryResult = 
    (from d in directoryInfo.GetFiles() 
    where d.Name.EndsWith(suffix) 
    select d).ToDictionary(d=>d.Name, d=>d.Name); 

這是在鍵和值是相同的一個沒有意義的字典。

如果你想保留的FileInfo的每個文件,可以改爲做這個(給你一個Dictionary<string, FileInfo>):

var queryResult = 
    (from d in directoryInfo.GetFiles() 
    where d.Name.EndsWith(suffix) 
    select d).ToDictionary(k=>k.Name, v=>v); 
+0

謝謝!它有助於。順便說一句,有沒有其他的方式來創建字典,而不是調用ToDictionary()方法? – DerekY 2012-07-18 03:15:30