我有一个“复杂”类型的列表 - 一个具有一些字符串属性的对象。List 本身是另一个对象的属性,包含多种类型的对象,如下所示的简化类结构:
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 类是一个外部依赖项 - 我无法更改它的结构来简化它,还有其他方面重要的类,只是与这个问题无关。
欢迎任何指示或补充阅读。