2012-07-18 36 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