c# 将不同类型的列表设置为对象
c# List of varying type set as object
我创建了一个通用搜索参数 class 以便在多个库中重复使用(见下文)。我试图找到一种更好的方法来实现每个参数的值列表。我会将参数列表传递给一个方法,但每个参数的值的类型不同。我已经将它实现为简单的类型对象,并将在我的代码中根据需要转换为正确的类型,但我觉得可能有更好的方法来做到这一点,我没有想出太多。有人做过类似的事情或有建议吗?谢谢!
通用摘要Class:
public class SearchParameter<T>
{
public T Name { get; set; }
public List<object> Values { get; set; }
}
继承Class:
public enum OrderSearchParameterNames
{
Barcode,
DateCompleted,
DatePlaced,
OrderStatus,
UserId
}
public class OrderSearchParameter : SearchParameter<OrderSearchParameterNames>
{
public OrderSearchParameter(OrderSearchParameterNames name, List<object> values)
{
Name = name;
Values = values;
}
}
使用继承的方法示例 class:
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;
}
}
我创建了一个通用搜索参数 class 以便在多个库中重复使用(见下文)。我试图找到一种更好的方法来实现每个参数的值列表。我会将参数列表传递给一个方法,但每个参数的值的类型不同。我已经将它实现为简单的类型对象,并将在我的代码中根据需要转换为正确的类型,但我觉得可能有更好的方法来做到这一点,我没有想出太多。有人做过类似的事情或有建议吗?谢谢!
通用摘要Class:
public class SearchParameter<T>
{
public T Name { get; set; }
public List<object> Values { get; set; }
}
继承Class:
public enum OrderSearchParameterNames
{
Barcode,
DateCompleted,
DatePlaced,
OrderStatus,
UserId
}
public class OrderSearchParameter : SearchParameter<OrderSearchParameterNames>
{
public OrderSearchParameter(OrderSearchParameterNames name, List<object> values)
{
Name = name;
Values = values;
}
}
使用继承的方法示例 class:
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;
}
}