我有DataSet
,其中包含多个DataTable
,我想获取表名并在组合框中显示它们。下面的代码运行正常,但我如何在LINQ
中转换此代码。
foreach (DataTable dt in objDataset.Tables)
{
cboTables.Items.Add(dt.TableName);
}
此处objDataset
为DataSet
,'cboTables'为WPF的ComboBox
答案 0 :(得分:3)
cboTables.Items.AddRange(objDataset.Tables.Cast<DataTable>().Select(iter => iter.TableName));
答案 1 :(得分:3)
试试这个:
cboTables.ItemsSource = objDataset.Tables.OfType<DataTable>().Select(dt => dt.TableName);
答案 2 :(得分:1)
可能是这样的。试一试。
objDataset.Tables.ToList<DataTable>().ForEach( dt => { cboTables.Items.Add(dt.TableName) });
答案 3 :(得分:1)
以下是使用ForEach
的一种方法,但我不建议仅使用它来使用LINQ,因为您必须使用ToList
转换您的收藏:
objDataset.Tables.ToList().ForEach(t => cboTables.Items.Add(t.TableName));
答案 4 :(得分:0)
为什么甚至使用foreach只做一个select并将其设置为ComboBox的ItemsSource。
cboTables.ItemsSource = objDataSet.Tables.OfType()。选择(dt =&gt; dt.TableName);