Ответ 1
MyList.Select(x => new { x.Id, x.Name }).ToList();
Мы часто используем следующее лямбда-выражение
MyList.Select(x => x.Id).ToList();
Можно ли получить более одного свойства, используя выражение lambda? Например, Id
и Name
из MyList?
Я знаю, что могу использовать следующий синтаксис:
(from item in MyList
select new { item.Id, item.Name }).ToList();
Могу ли я сделать то же самое, используя выражение лямбда?
MyList.Select(x => new { x.Id, x.Name }).ToList();
Эта функция вам интересна: С# 3 Анонимные типы
Вы можете создать новый экземпляр анонимного типа с помощью
var v = new { Amount = 108, Message = "Hello", this.Text };
Конечно, это тоже работает как лам:
SomeThing.Select( () => new {X=1,Y=2} )
в любом месте вашего кода. Он также выбирает имена свойств, и в этом случае вам не нужно явно указывать его (третий член анонимного типа в моем примере автоматически называется Text
.
К сожалению, вы не можете использовать их как не общий тип возвращаемой функции.
var sample = dbcontext.MyList
.Select(m => new Mylist{ sampleid=m.sampleid,item=m.item })
.ToList();