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

这是一种使用方式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 回答