C# 通用搜索助手

C# Generic Search Helper

我正在尝试使用泛型而不是下面的方法重写搜索助手,除了传入的列表类型外,这两个相同的方法。当我将 <T> 添加到 class然后将 <T> 插入到每个列表的类型声明中,我收到以下错误:

类型 'T' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'ProjectName.Helpers.Extensions.AttributeExtensions.GetDescription(T)'

中的参数 'T'
public class SearchFilterHelper
{
    public static SelectList GenreSelectList(List<GenreFilter> filters, int selectedValue = 0)
    {
        var GenreList = filters.Select(g => new { Value = g.ToString(), Description = g.GetDescription() });
        return new SelectList(GeneratedList, "Value", "Description", selectedValue.ToString());
    }

    public static SelectList PublisherSelectList(List<PublisherFilter> filters, int selectedValue = 0)
    {
        var GeneratedList = filters.Select(g => new { Value = g.ToString(), Description = g.GetDescription() });
        return new SelectList(GeneratedList, "Value", "Description", selectedValue.ToString());
    }
}

这是我第一次尝试在 Helper 中使用泛型,对于理解如何重写它的任何帮助,一如既往,我将不胜感激...

您拥有的 GetDescription 方法应用了通用参数为 struct 的通用约束。如果您想从自己的方法中调用该方法,则需要应用相同的通用约束。