一般筛选 .NET 4.5 和无参数构造函数的列表
本文关键字:参数 构造函数 列表 筛选 NET | 更新日期: 2023-09-27 17:57:01
我已经查看了堆栈溢出,但找不到这个问题的答案。我正在尝试根据传入的通用条件通用过滤 IEnumerable 对象。
private IEnumerable<TListItem> FilterList<TListItem, TListCriteria>(TListCriteria criteria) where TListItem: new()
{
//Do Work
return new IEnumerable<TListItem>();
}
问题是我有一个构造函数,并且收到一个错误,即 TListItem 必须是具有公共无参数构造函数的非抽象。 如何将带有参数构造函数的类用于此类泛型调用?
问题不TListItem
,而是IEnumerable
是一个接口,根本无法实例化,所以你不能返回新的IEnumerable
。
尝试:
return Enumerable.Empty<TListItem>();
其次,您已经为泛型指定了一个约束:
where TListItem : new()
这恰恰意味着TListItem
必须是具有无参数构造函数的类型。因此,如果不需要,您可能希望删除该约束。