複数のDataSet
を含むがありDataTable
、テーブル名を取得してコンボ ボックスに表示したい。以下のコードは正常に実行されていますが、このコードをLINQ
.
foreach (DataTable dt in objDataset.Tables)
{
cboTables.Items.Add(dt.TableName);
}
これobjDataset
はDataSet
、「cboTables」はComboBox
WPFのものです
cboTables.Items.AddRange(objDataset.Tables.Cast<DataTable>().Select(iter => iter.TableName));
これを試して :
cboTables.ItemsSource = objDataset.Tables.OfType<DataTable>().Select(dt => dt.TableName);
これは機能するかもしれません。試してみる。
objDataset.Tables.ToList<DataTable>().ForEach( dt => { cboTables.Items.Add(dt.TableName) });
これは を使用する 1 つの方法ForEach
ですが、 を使用してコレクションを変換する必要があるため、LINQ を使用するためだけに使用することはお勧めしませんToList
。
objDataset.Tables.ToList().ForEach(t => cboTables.Items.Add(t.TableName));
foreach を使用して選択を行い、それを ComboBox の ItemsSource として設定するのはなぜですか。
cboTables.ItemsSource = objDataSet.Tables.OfType().Select(dt => dt.TableName);