加入LINQ,避免在"new {}"中明确命名属性?

Ale*_*lex 6 linq linq-to-dataset

我想做这样的事情:

    DataTable q = from c in customers
            join o in orders on c.Key equals o.Key
            into outer
            from j in outer.DefaultIfEmpty()
            select new { c.*, j.* };
Run Code Online (Sandbox Code Playgroud)

我目前最接近的是以下内容:

    var q = from c in customers
            join o in orders on c.Key equals o.Key
            into outer
            from j in outer.DefaultIfEmpty()
            select new { c, j };
Run Code Online (Sandbox Code Playgroud)

我希望我的结果(q)包含c和j中的所有列.c和j都包含很多列,所以我宁愿不列出它们:

            select new { c.col1, c.col2, etc. }
Run Code Online (Sandbox Code Playgroud)

但我基本上希望最终的DataTable由c.*和j.*组成.

如果我在'select new'中指定所有c和j列,那么这个答案(不是接受的答案,而是它下面的答案)是有效的: 如何将LINQ结果转换为DATATABLE? 但我想避免列出所有内容.

Mar*_*ski 0

我认为那是不可能的。您只能按照问题中所示的方式执行此操作:select new { c, j };或列出所有列。

关于此还有很多其他线程: