如何使用LINQ将结果返回为C#</string,string>中的Dictionary <string,string>

时间:2012-07-18 01:12:33

标签: c# linq

我是LINQ的新手。我想查询文件夹中的文件并将结果返回为Dictionary.Here是我的代码

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

但似乎不正确。

1 个答案:

答案 0 :(得分:0)

GetFiles()返回FileInfo数组。

从您的问题中不清楚您希望将什么作为词典键以及您希望拥有的值作为值。如果您希望将Name作为两者,则可以执行

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);