2017-02-14 4 views
6

Я инициализация и массив из элементов в списке следующим образом:расчесывания массива Инлайн - LINQ

MyArray[] Arrayitems = SomeOtherList 
.Select(x => new MyArray[] 
{ 
    ArrayPar1 = x.ListPar1, 
}).ToArray() 

У меня есть дополнительный список, который я хотел бы добавить к тому же встраиваемому массиву в Инициализатором, что-то вроде this():

MyArray[] Arrayitems = SomeOtherList 
    .Select(x => new MyArray[] 
    { 
     ArrayPar1 = x.ListPar1, 
    }).ToArray() 
    .Join(
    MyArray[] Arrayitems = SomeOtherListNo2 
    .Select(x => new MyArray[] 
    { 
     ArrayPar1 = x.ListPar1, 
    }).ToArray() 
    ); 

Возможно ли это, или мне нужно объединить все до первоначального выбора?

+0

ли вы имеете в виду 'новый MyArray() '? 'new MyArray []' не имеет смысла с вашим заданным инициализатором и типом результата. – Sefe

+0

Спасибо, Sefe, вы правы, но это всего лишь пример psuedo, фактический код будет иметь только «Arrayitems», который инициализируется в другом месте. Вы другой ответ - именно то, что мне нужно, спасибо. –

ответ

6

Вы можете использовать Concat:

MyArray[] Arrayitems = SomeOtherList.Concat(SomeOtherListNo2) 
.Select(x => new MyArray() 
{ 
    ArrayPar1 = x.ListPar1, 
}).ToArray(); 

Если элементы могут содержаться в обоих списках, и вы хотите их только один раз в результате, вы можете использовать Union:

MyArray[] Arrayitems = SomeOtherList.Union(SomeOtherListNo2) 
.Select(x => new MyArray() 
{ 
    ArrayPar1 = x.ListPar1, 
}).ToArray(); 
Смежные вопросы