繁体   English   中英

c#设置为对象的各种类型的列表

[英]c# List of varying type set as object

我创建了一个通用搜索参数类,以在多个库中重用(请参见下文)。 我正在尝试找到一种更好的方法来实现每个参数的值列表。 我将参数列表传递给方法,但是每个参数的值的类型都不同。 我已经将其实现为简单的类型对象,并将在代码中根据需要将其转换为正确的类型,但是我觉得可能有更好的方法可以做到这一点,而且我没有太多建议。 任何人都做过类似的事情或有建议吗? 谢谢!

通用抽象类:

public class SearchParameter<T>
{
    public T Name { get; set; }
    public List<object> Values { get; set; }
}

继承类:

public enum OrderSearchParameterNames
{
    Barcode,
    DateCompleted,
    DatePlaced,
    OrderStatus,
    UserId
}

public class OrderSearchParameter : SearchParameter<OrderSearchParameterNames>
{
    public OrderSearchParameter(OrderSearchParameterNames name, List<object> values)
    {
        Name = name;
        Values = values;
    }
}

使用继承的类的方法的示例:

public ApiResponse<OrderWellplate, ApiResponseStatus> SearchOrders(int currentPageIndex, int pageSize, List<OrderSearchParameter> searchParameters, OrderSortParameter sortParameter, out int recordCount)

如果列表的类型与Name的类型相同

public class SearchParameter<T>
{
    public T Name { get; set; }
    public List<T> Values { get; set; }
    public SearchParameter(T name, List<T> values)
    {
        Name = name;
        Values = values;
    }
}

如果列表的类型与Name的类型不同

public class SearchParameter<TName, TValues>
{
    public TName Name { get; set; }
    public List<TValues> { get; set; }

    public SearchParameter(TName name, List<TValues> values)
    {
        Name = name;
        Values = values;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM