我有一个包含不同项目类型的集合列表。
该列表的类型为
稍后,在实体实用程序代码中,我需要清除这些集合。到目前为止,我找到的唯一解决方案是:
List<IEnumerable>
,因为IEnumerable
是来自ICollection<T>
的唯一非泛型接口,并且我需要在此列表中添加例如ICollection<Contact>
和ICollection<Partnership>
集合。稍后,在实体实用程序代码中,我需要清除这些集合。到目前为止,我找到的唯一解决方案是:
collection.GetType().GetInterface("ICollection`1").InvokeMember("Clear",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
null,
collection,
new object[0]);
有没有更优雅的方案可供使用?
ICollection
。 - SLaksICollection<T>
有 Clear() 方法,而ICollection
没有 Clear() 方法。 - Matthew WatsonClear
只有在集合是只读的情况下才会抛出NotSupportedException
异常! - Kirk WollIList
吧。 - SLaks