0

ループを使用せずにFileNamesinのリストを取得する方法はありますか?DataTableforeach

DataTable dtOutput = new DataTable();
dtOutput.Columns.Add("FileName", typeof(string));
dtOutput.Columns.Add(Col2..., typeof(decimal));
...

foreach (string file in Directory.EnumerateFiles(txtBoxReadFrom.Text, txtBoxTargetFilter.Text))
{
   dtOutput.Rows.Add(Path.GetFileName(file));                
}
progressBar1.Maximum = dtOutput.Rows.Count;
4

3 に答える 3

0

Linq はループを非表示にしますが、とにかくそれらを使用します。

List<String> allFileNames = dtOutput.AsEnumerable()
     .Select(r => r.Field<string>("FileName"))
     .ToList();

しかし、メモリ内コレクションでもあるテーブルが既にあるのに、なぜリストが必要なのですか?

これらのファイル名を別の複数行で表示したい場合は、TextBox次を使用できます。

txtBoxWriteTo.Lines = dtOutput.AsEnumerable()
     .Select(r => r.Field<string>("FileName"))
     .ToArray();
于 2013-07-08T10:22:36.103 に答える
0
  1. DataTable オブジェクトを Enumerable() に変換します。
  2. 列名をフィールド名として選択句を適用します。
  3. 文字列配列にキャストします。

     string[] strSummCities = dtTemp1.AsEnumerable().Select(s => s.Field<string>("City")).ToArray<string>();
    

これがクエリの解決に役立つことを願っています。

于 2013-07-08T10:18:44.537 に答える