簡體   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