Я совершенно новичок в Linq и задаюсь вопросом, можете ли вы помочь мне понять разницу между следующим Linq? Например ...
//normal select
var contacts = entity.Contacts.Select(n => n.FirstName);
//select new
var contacts2 = entity.Contacts.Select(n => new { n.FirstName });
//normal select output
foreach (var c in contacts)
Response.Write(c + "<br/>");
//select new output
foreach (var c in contacts2)
Response.Write(c.FirstName + "<br/>");
Единственное отличие, которое я вижу, состоит в том, что при обычном выборе имя (строка) сохраняется в коллекции, тогда как при выборе нового объект контакта сохраняется в коллекции, а доступ к имени осуществляется по его свойству. Также select new возвращает свойства, только выбранные в операторе.
Еще одно отличие, которое я заметил, заключается в том, что вы можете вернуть несколько определенных свойств в select new.
В каком сценарии вы бы выбрали один из других?
Спасибо за помощь.