假设我们有一个类
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 是已知的,只有算法应该是通用的。
我知道可以使用(直接)反射来完成,但是还有其他解决方案吗?
让我知道问题是否不够清楚。 (可能不是)。
[编辑] 基本上,我需要的是:拥有 myClsList,我需要指定一个数据源 (ComplexClsList) 和该数据源 (Fld1) 中的一个字段,该字段将用于填充我的 SomeField
最佳答案
这只是一个映射,所以使用一些简单的 LINQ:
ClsList myClsList = new ClsList();
myClsList.AddRange(
myComplexList.Select(Complexitem => new Cls { SomeField = Complexitem.Fld1 })
);
关于c# - 通用列表/子列表处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577081/