C#: анонимные типы и имена свойств

Есть ли вообще разница между этим:

dataContext.People.Select(ø => new
{
     Name = ø.Name,
});

и это:

dataContext.People.Select(ø => new
{
     ø.Name,
});

?


person Svish    schedule 13.02.2009    source источник
comment
Что это -›'ø'? Фи?   -  person Autodidact    schedule 13.02.2009
comment
Это норвежский персонаж. æ, ø и å. Я обычно использую ø для лямбда-функций, поскольку в .Net нет других вещей, или код не начинается с этой буквы. Это означает, что intellisense не сработает :) Также я действительно думаю, что эта буква делает лямбду лучше: p   -  person Svish    schedule 13.02.2009
comment
Лол, ты мог бы использовать λ. Но мне нравится скандинавский оттенок ;-).   -  person Toon Krijthe    schedule 13.02.2009
comment
λ не имеет легкого доступа на моей клавиатуре: p ø находится рядом с моей клавишей L, поэтому до нее очень легко добраться с помощью моего мизинца ;)   -  person Svish    schedule 13.02.2009
comment
И сразу после того, как я нажал «Добавить комментарий», я понял вашу точку зрения на использование λ, так как это лямбда... doh, ха-ха. Но доступ все равно имеет значение :p   -  person Svish    schedule 13.02.2009


Ответы (3)


Они идентичны; если имя не указано (и правая сторона представляет собой простой доступ к члену), то предполагается имя существующего члена. Имя необходимо только для:

  • изменить имя на другое (например, Name = grp.Key)
  • чтобы дать имя выражению доступа без членства (например, Count = grp.Count())
person Marc Gravell    schedule 13.02.2009
comment
Судя по его репутации, похоже, у него есть некоторая практика :p - person Svish; 13.02.2009

Нет. Второй просто получает имя свойства для вас, фактически сгенерированный код тот же.

person AnthonyWJones    schedule 13.02.2009

Нет, компилятор назовет свойство анонимного типа так же, как правая часть присваивания.

person Frans Bouma    schedule 13.02.2009