1

のMSDNDirectoryInfo.EnumerateFilesのドキュメントに基づくと、プロセスには次のものが含まれます。

  1. DirectoryInfoパスで宣言する
  2. メソッドを使用してEnumerateFilesファイルを取得する

FileInfo依存など、この情報を取得する基礎となるクラスがありますFileSystemInfo

DirectoryInfo DR = new DirectoryInfo(@"C:\temp\Downloads");
foreach(FileInfo FF in DR.EnumerateFiles())
{ 
    textBox1.Text += FF.ToString()+ "\r\n"; 
}
  1. FileInfo直接使用する前に宣言できる場所でこれを再コーディングするにはどうすればよいですか?
  2. を使用する場合、これをどのように再コーディングしますList<T>か?
  3. リストの列挙可能なデータをどのように読み取るのですか?

ありがとう

4

2 に答える 2

1
  1. なぜしたいのですか?
  2. var list = DR.EnumerateFiles().ToList();
于 2013-03-26T15:26:44.413 に答える
0

あなたがやろうとしていることはそれほど明確ではありませんが、それにもかかわらず、以下を実行することで「使用する前に宣言する」ことができます:

DirectoryInfo DR = new DirectoryInfo(@"C:\temp\Downloads");
List<string> filePaths = DR.EnumerateFiles();
IEnumerable<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f));
foreach(FileInfo fileInfo in fileInfos)
{ 
    textBox1.Text += fileInfo.FullName.ToString()+ "\r\n"; 
}

(つまり、foreach ループの外に宣言を移動するだけです)

ファイルのフルパスEnumerateFilesを返すため、そこからインスタンスを作成する必要があります。これは、提供されているコンストラクターを使用して実行できます。FileInfo

あなたが話した「リスト」ビットを実行するには、追加するだけでToList()、LINQ が作業を行います。

List<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f)).ToList();
于 2013-03-26T16:13:36.353 に答える