假设我们有一堂课
class ComplexCls
{
public int Fld1;
public string Fld2;
//could be more fields
}
class Cls
{
public int SomeField;
}
然后是一些代码
class ComplexClsList: List<ComplexCls>;
ComplexClsList myComplexList;
// fill myComplexList
// same for Cls
class ClsList : List<Cls>;
ClsList myClsList;
我们想从 myComplexList 填充 myClsList,类似于(伪代码):
foreach Complexitem in myComplexList
{
Cls ClsItem = new Cls();
ClsItem.SomeField = ComplexItem.Fld1;
}
执行此操作的代码很简单,将放在 myClsList 中的某个方法中。但是,对于通用的 ComplexCls,我想将其设计得尽可能通用。请注意,在使用此代码时,确切的 ComplexCls 是已知的,只有算法 shd 是通用的。
我知道可以使用(直接)反射来完成,但还有其他解决方案吗?如果问题不够清楚,请告诉我。(可能不是)。[编辑] 基本上,我需要的是:拥有 myClsList,我需要指定一个 DataSource (ComplexClsList) 和一个来自该 DataSource (Fld1) 的字段,用于填充我的 SomeField