Присоединиться к LINQ, избегающему явного именования свойств в «новых {}»?

Я хотел бы сделать что-то вроде этого:

    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.* };

Самое близкое, что я получил на данный момент, это следующее:

    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 };

Я хотел бы, чтобы мой результат (q) содержал все столбцы из c и j. как c, так и j содержат много столбцов, поэтому я бы не стал перечислять их как таковые:

            select new { c.col1, c.col2, etc. }

Но я в основном хочу, чтобы окончательный DataTable состоял из c.* и j.*.

Этот ответ (не принятый ответ, а ответ ниже) работает, если я укажу все столбцы c и j внутри «выбрать новый»: Как преобразовать результат LINQ в DATATABLE? Но я хотел бы не перечислять их все.

6
задан Community 23 May 2017 в 11:52
поделиться