, Что, если я хочу получить отличный список на основе один или [еще 114] свойства?
Простой! Вы хотите сгруппировать их и выбрать победителя из группы.
List<Person> distinctPeople = allPeople
.GroupBy(p => p.PersonId)
.Select(g => g.First())
.ToList();
, Если Вы хотите определить группы на нескольких свойствах, вот то, как:
List<Person> distinctPeople = allPeople
.GroupBy(p => new {p.PersonId, p.FavoriteColor} )
.Select(g => g.First())
.ToList();
Я считаю, что в VC ++ вам нужно поместить соглашение о вызовах внутри () Вот пример в MSDN использования соглашения о вызовах внутри typedef указателя на функцию.
typedef DWORD (WINAPI * CM_Open_DevNode_Key)(DWORD, DWORD, DWORD, DWORD, PHKEY, DWORD);
Это должно скомпилироваться без проблем.
Указатель функции должен содержать информацию о соглашении о вызовах, используемом функцией. Если вы указываете на функцию, которая использует соглашение о вызовах __cdecl, вы должны использовать указатель функции __cdecl. Если вы указываете на функцию, которая использует соглашение о вызовах __stdcall, вы должны использовать указатель функции __stdcall.
Надеюсь, это поможет.