В C# у меня есть тип объекта 'A', который содержит список пар значений ключа.Создание списка, отличного от C#
Пара ключей значений представляет собой строку категории и строку значений.
Чтобы создать экземпляр объекта типа А, я должен был бы сделать следующее:
List<KeyValuePair> keyValuePairs = new List<KeyValuePair>();
keyValuePairs.Add(new KeyValuePair<"Country", "U.S.A">());
keyValuePairs.Add(new KeyValuePair<"Name", "Mo">());
keyValuePairs.Add(new KeyValuePair<"Age", "33">());
A a = new A(keyValuePairs);
В конце концов, у меня будет список из типов объектов, и я хочу, чтобы манипулировать список, так что я только получить уникальные значения и я основываю его только на названии страны. Поэтому я хочу, чтобы список был сокращен, чтобы иметь только ОДИН «Страна», «U.S.A», даже если он появляется более одного раза.
Я изучал linq Distinct, но он не делает то, что я хочу, потому что я не могу определить какие-либо параметры и потому что он, похоже, не способен поймать два эквивалентных объекта типа A. Я знаю что я могу переопределить метод «Равно», но он по-прежнему не решает мою проблему, которая заключается в том, чтобы сделать список разным на основе ОДНОЙ из пар значений ключа.
Можно ли увидеть конструктор 'A'? –
Используйте GroupBy вместо этого ... –
Если у вас несколько «Страна», но с разными значениями, разрешено? –