2

複数のDataSetを含むがありDataTable、テーブル名を取得してコンボ ボックスに表示したい。以下のコードは正常に実行されていますが、このコードをLINQ.

foreach (DataTable dt in objDataset.Tables)
  {
    cboTables.Items.Add(dt.TableName);
  }    

これobjDatasetDataSet、「cboTables」はComboBoxWPFのものです

4

5 に答える 5

3
cboTables.Items.AddRange(objDataset.Tables.Cast<DataTable>().Select(iter => iter.TableName));
于 2013-02-25T14:17:41.470 に答える
3

これを試して :

 cboTables.ItemsSource = objDataset.Tables.OfType<DataTable>().Select(dt => dt.TableName); 
于 2013-02-25T14:37:34.597 に答える
1

これは機能するかもしれません。試してみる。

objDataset.Tables.ToList<DataTable>().ForEach( dt => { cboTables.Items.Add(dt.TableName) });
于 2013-02-25T14:16:51.380 に答える
1

これは を使用する 1 つの方法ForEachですが、 を使用してコレクションを変換する必要があるため、LINQ を使用するためだけに使用することはお勧めしませんToList

objDataset.Tables.ToList().ForEach(t => cboTables.Items.Add(t.TableName));
于 2013-02-25T14:16:51.487 に答える
0

foreach を使用して選択を行い、それを ComboBox の ItemsSource として設定するのはなぜですか。

cboTables.ItemsSource = objDataSet.Tables.OfType().Select(dt => dt.TableName);

于 2013-02-25T14:17:16.663 に答える