Нет, new
не является обязательным, если вы выбираете «новые» объекты. (это то, что вы делаете. Вы создаете новые объекты анонимного типа с 2 свойствами FN
и LN
)
Просто пропустить new
- синтаксическая ошибка.
Если у вас есть существующий тип, который вы хотели бы использовать (например, вы определили class
Person
с 2 свойствами FN
и LN
), вы можете использовать этот тип. Э.Г.
var results = from person in people
select new Person { FN = person.FirstName, LN = person.LastName };
(при условии, что Person имеет конструктор без параметров, а FN
и LN
- свойства с установщиками)
Единственный раз, когда вы можете опустить new
, это если вы не создаете новый объект, например:
var results = from person in people
select LN = person.LastName;
Там вы выбираете просто LastName
, и в результате получается IEnumerable<string>