【发布时间】:2017-05-22 07:30:58
【问题描述】:
我有 2 个 ObservableCollections,比如 class1 和 class2 类型。
private ObservableCollection<Class1> cOne; // collection of objects of type Class1
private ObservableCollection<Class1> cTwo; // collection of objects of type Class2
现在在下面的方法中,我想遍历这个集合并访问对象的成员。
public void MyMethod<T> (){
var listOfLayers = new ObservableCollection<T>();
if (typeof(T) == typeof(Class1))
{
listOfLayers = (T) cOne;
}
else{
listOfLayers = (T) cTwo;
}
foreach (var entry in listOfLayers){
WL entry.someprop;
}
}
但是每次关于类型转换的时候我都会出错。
错误 CS0030 无法转换类型 'System.Collections.ObjectModel.ObservableCollection' 到 'T'
请注意,我没有根据类型创建两种方法,因为这两种方法本质上都是在不同的数据库表中做同样的事情。因此它们都会包含重复的代码。
【问题讨论】:
标签: c# generics generic-list generic-method