Выберите несколько записей

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

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

3 ответа

Решение
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();

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

var newList = list.Select(x => TranformToMyNewList(x)).ToList();

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

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

С уважением.

Другие вопросы по тегам