Ответ 1
В С# ничего подобного нет. В С# все свойства анонимных типов доступны только для чтения и участвуют в сопоставлении равенства.
Если вы хотите сделать что-то подобное на С#, вам нужно будет создать свой собственный (именованный) тип.
В VB.NET я привык делать подобные вещи при создании анонимных типов (анонимные типы VB.NET включают понятие ключевых полей):
Dim prod1 = New With {
Key .Name = "paperclips",
Key .Price = 1.29,
.OnHand = 423
}
Однако, я не смог найти способ сделать это в С#, так как появляется ключевое слово Key
не поддерживается.
Есть ли способ указать в С#, что я хочу сравнить только некоторые поля в анонимном типе при поиске равенства?
В С# ничего подобного нет. В С# все свойства анонимных типов доступны только для чтения и участвуют в сопоставлении равенства.
Если вы хотите сделать что-то подобное на С#, вам нужно будет создать свой собственный (именованный) тип.
В С# нет эквивалента ключа.