使用LINQ在组合框中显示数据集的表名

时间:2013-02-25 14:14:21

标签: c# .net linq

我有DataSet,其中包含多个DataTable,我想获取表名并在组合框中显示它们。下面的代码运行正常,但我如何在LINQ中转换此代码。

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

此处objDatasetDataSet,'cboTables'为WPF的ComboBox

5 个答案:

答案 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);