2013-11-24 4 views
0

Предположим, у меня естьLinq создать список некоторого типа из списка другого типа

List<SomeObject> 
List<AnotherObject> 

и метод Удлинитель, который возвращает SomeObject Instance, когда я отправить его AnotherObject

мне нужно произвести IList<SomeObject> от IList<AnotherObject> так без LINQ я wolud сделать это как

private List<SomeObject> ToListOfProductEntry(List<AnotherObject> list) 
     { 
      List<SomeObject> result = new List<SomeObject>(); 
      foreach (var obj in list) 
      { 
       result.Add(obj.ToSomeObject()); // ToSomeObject() is an extention method 
      } 
      return result ; 
     } 

как можно achive тот же результат с помощью LINQ, я не с нами e LINQ alot, поэтому я не знаком с ним.

ответ

2

Вы можете использовать проекцию Select для формирования данных для каждого элемента.

var result = list.Select(x=>x.ToSomeObject()).ToList();  
+0

Есть ли разница в производительности между этим и выше? например, если у меня было 20000 элементов, которые вы бы использовали? – FPGA

+3

@ user1492051 Я думаю, что если есть какая-то разница, это очень мало, не стоит упоминать в этом случае. –

+0

Да, эта операция всегда будет работать в O (n) времени. – dcastro

Смежные вопросы