一般筛选 .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 必须是具有公共无参数构造函数的非抽象。 如何将带有参数构造函数的类用于此类泛型调用?

一般筛选 .NET 4.5 和无参数构造函数的列表

问题不TListItem,而是IEnumerable是一个接口,根本无法实例化,所以你不能返回新的IEnumerable

尝试:

return Enumerable.Empty<TListItem>();

其次,您已经为泛型指定了一个约束:

where TListItem : new()

这恰恰意味着TListItem必须是具有无参数构造函数的类型。因此,如果不需要,您可能希望删除该约束。