【问题标题】:How to select all fields from datatable如何从数据表中选择所有字段
【发布时间】:2012-05-16 09:36:02
【问题描述】:

如何从数据表中选择所有字段?例如:

var common = from c in dt1.AsEnumerable()
             join x in dt2.AsEnumerable() on c.Field<int>("ID") equals
             x.Field<int>("ID")
             select
             new object[]
             {
                 c["Col1"], x["NameCol1"], x["NameCol2"], x["NameCol3"], x["NameCol4"]

             };

如何选择 x 的所有字段? (如果 x 有 20 列,我不想为所有字段写名称)

【问题讨论】:

  • 嗯,对不起,我似乎搞砸了我对 LINQ 加入的了解... 仅作记录:这是对扩展方法的转换(这次应该可以):@987654322 @。但从那时起,很遗憾,我现在帮不了你。我会说,您必须遍历所有现有属性。我认为,LINQ 真的缺少* 运算符...

标签: c# linq select join datatable


【解决方案1】:

也许这会有所帮助:

        var customers = new DataTable();
        customers.Columns.Add("ID", typeof(int));
        customers.Columns.Add("Name");

        customers.Rows.Add(1, "Tom");
        customers.Rows.Add(2, "Dick");
        customers.Rows.Add(3, "Harry");

        var purchases = new DataTable();
        purchases.Columns.Add("ID");
        purchases.Columns.Add("Description");
        purchases.Columns.Add("PurchaseID", typeof(int));

        purchases.Rows.Add(1, "Bike", 1);
        purchases.Rows.Add(2, "Holiday", 1);
        purchases.Rows.Add(3, "Bike", 2);
        purchases.Rows.Add(4, "Car", 3);

        var query = customers.AsEnumerable().Join(purchases.AsEnumerable(),
                                    cust => cust.Field<int>("ID"),
                                    purch => purch.Field<int>("PurchaseID"),
                                    (cust, purch) =>
                                    {
                                        var res = new List<object>();
                                        res.AddRange(cust.ItemArray);
                                        res.AddRange(purch.ItemArray);
                                        return res.ToArray();
                                    }
                                    );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多