У меня есть список «сложного» типа - объект с несколькими строковыми свойствами. Сам список является свойством другого объекта и содержит объекты различных типов, как показано в этой сокращенной структуре классов:
Customer {
public List<Characteristic> Characteristics;
.
.
.
}
Characteristic {
public string CharacteristicType;
public string CharacteristicValue;
}
Я бы хотел иметь возможность собрать Список значений данного типа Характеристик для текущего Клиента, что я могу сделать в двухэтапный процесс следующим образом:
List<Characteristic> interestCharacteristics = customer.Characteristics.FindAll(
delegate (Characteristic interest) {
return interest.CharacteristicType == "Interest";
}
);
List<string> interests = interestCharacteristics.ConvertAll<string>(
delegate (Characteristic interest) {
return interest.CharacteristicValue;
}
);
Это прекрасно работает, но кажется, что далеко. Я уверен, что мне не хватает более простого способа попасть в этот список, либо путем объединения методов FindAll () и Convert (), либо чего-то еще, что я пропускаю полностью.
Что касается фона, я работаю в .Net 2.0, поэтому я ограничен обобщениями .Net 2, а класс Characteristic является внешней зависимостью - я не могу изменить его структуру, чтобы упростить ее, и есть другие важные для класса аспекты, просто не связанные с этой проблемой.
Любые указатели или дополнительные чтения приветствуются.