Выберите несколько записей
У меня есть 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();
С уважением.