0

私はLINQが初めてです。フォルダー内のファイルを照会し、結果を Dictionary.Here として返したいのですが、私のコードは次のとおりです。

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 に答える