Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用LINQ在C中以Dictionary的形式返回结果_C#_Linq - Fatal编程技术网

C# 如何使用LINQ在C中以Dictionary的形式返回结果

C# 如何使用LINQ在C中以Dictionary的形式返回结果,c#,linq,C#,Linq,我是LINQ的新手。我想查询文件夹中的文件并将结果作为字典返回 var queryResult = (from d in directoryInfo.GetFiles() where d.Name.EndsWith(suffix) select new Dictionary<string, string> { {d.Name,

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

var queryResult = (from d in directoryInfo.GetFiles()
                   where d.Name.EndsWith(suffix)
                   select new Dictionary<string, string>
                   {
                       {d.Name,""},
                   });
但这似乎不正确

返回一个数组

从您的问题中不清楚您想要什么作为字典键,想要什么作为值。如果你想让名字同时出现,你可以这样做

var queryResult = 
    (from d in directoryInfo.GetFiles()
     where d.Name.EndsWith(suffix) 
     select d).ToDictionary(d=>d.Name, d=>d.Name);
这是一本毫无意义的字典,因为键和值是相同的

如果您确实希望保留每个文件的FileInfo,您可以改为这样做,这将为您提供一个字典:


非常感谢。这很有帮助。顺便问一下,除了调用ToDictionary方法,还有其他方法来创建dictionary吗?
var queryResult = 
    (from d in directoryInfo.GetFiles()
     where d.Name.EndsWith(suffix) 
     select d).ToDictionary(k=>k.Name, v=>v);