【发布时间】:2019-05-17 05:47:16
【问题描述】:
我正忙于构建自己的属性网格。我目前正在努力解决的问题之一是处理集合。专门将新项目添加到集合中。
我有一个名为 CollectionDataSource 的对象,它是一个包含 T 类型对象的列表。
我正在获取 T 的类型并创建一个新的 T 对象,如下所示:
var type = CollectionDataSource.GetType().GetGenericArguments().Single();
var newItem = Activator.CreateInstance(type);
现在我需要将 newItem 添加到 CollectionDataSource。问题是 CollectionDataSource 是对象类型。我尝试过转换为 IEnumerable 和 ICollection 但这些接口无法添加新项目。
如何将 newItem 添加到 CollectionDataSource?
更新
请参阅下面的答案。我所要做的就是将集合转换为 IList。这对我有用
【问题讨论】:
-
您可以转换为 IEnumerable 然后转换为 List 还是直接转换为 List?
-
如果我事先不知道列表的类型,如何转换到列表?
-
你怎么能确定
CollectionDataSource的类型支持添加元素的操作呢? -
@Sweeper 没有保证,但应该是这样。如果不是,那么显然会抛出一个错误,这很好
标签: c#