Выберите несколько записей - PullRequest
1 голос
/ 16 апреля 2010

У меня есть IList<MyList>. Я хотел бы с LINQ сохранить тот же список (то же количество записей), но я бы хотел уменьшить или / и переименовать некоторые записи. В конце я бы хотел получить IList<MyNewList>.

Обновление (запрос Марка Гравелла) У нас есть инструменты для генерации интерфейса / объекта из хранимой процедуры Oracle. Моя проблема в том, что для некоторой хранимой процедуры создается много полей, обычно они возвращаются базой данных (и изменение базы данных не вариант). Затем инструменты сгенерировали «Field1, Field2, Field3, Field4, ...», но я бы хотел создать новый список только с «Field2, Field4». этот новый список будет связан с GridView.

Ответы [ 3 ]

2 голосов
/ 16 апреля 2010

Вы можете сделать это с помощью select (LINQ):

var newList = list.Select(x => TranformToMyNewList(x)).ToList();
1 голос
/ 16 апреля 2010
var newList = (from item in oldList
               select new { item.Field2, item.Field4}).ToList();

или для вашего собственного типа:

IList<MyNewList> newList = (
       from item in oldList
       select new MyNewList {Field2=item.Field2,Field4=item.Field4}).ToList();
0 голосов
/ 16 апреля 2010

В linq вы можете создать анонимный тип: http://msdn.microsoft.com/en-us/library/bb397696.aspx. Его использование выглядит примерно так:

var anonymousTypeList = (from row in list select new {Name=row.FullName,Address=StreetAddress}).ToList();

С уважением.

...