Зачем использовать встроенные функции setattr () и getattr ()?

Я немного опоздал на ответ, но вы можете сделать это, если хотите, чтобы весь элемент, а не только значения, которые вы хотите сгруппировать:

var query = doc.Elements("whatever")
               .GroupBy(element => new {
                             id = (int) element.Attribute("id"),
                             category = (int) element.Attribute("cat") })
               .Select(e => e.First());

Это даст вы первый элемент, соответствующий вашей группе по выбору, так же, как второй пример Jon Skeets с использованием DistinctBy, но без реализации сравнения IEqualityComparer. DistinctBy, скорее всего, будет быстрее, но в приведенном выше решении будет меньше кода, если производительность не является проблемой.

23
задан temporary_user_name 1 October 2013 в 18:52
поделиться