0

我是 LINQ 的新手。我想查询文件夹中的文件并将结果作为字典返回。这是我的代码

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

但这似乎不正确。

4

1 回答 1

0

GetFiles()返回一个FileInfo数组。

从您的问题中不清楚您希望将什么作为 Dictionary 键以及您希望将什么作为值。如果你想要名字作为两者,你可以做

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);
于 2012-07-18T01:17:55.257 回答