C# 从2个数组返回一组静态数据的最佳实践是什么

C# 从2个数组返回一组静态数据的最佳实践是什么,c#,arrays,model-view-controller,asp.net-mvc-viewmodel,C#,Arrays,Model View Controller,Asp.net Mvc Viewmodel,如何将两个静态数组(字符串、十进制)中的一组数据返回给视图?示例[小型,1.00],[中型,3.00],[大型,7.50] 我一直在研究Tuple,它确实会将数据返回到控制器,但我认为这不是正确的方法,因为我必须在Viewmodel中创建新属性,然后分配数据以返回到视图 类别: public class BoxSizeViewModel { public static Tuple<string[], decimal[]> GetDetails() {

如何将两个静态数组(字符串、十进制)中的一组数据返回给视图?示例[小型,1.00],[中型,3.00],[大型,7.50]

我一直在研究Tuple,它确实会将数据返回到控制器,但我认为这不是正确的方法,因为我必须在Viewmodel中创建新属性,然后分配数据以返回到视图

类别:

public class BoxSizeViewModel
{

    public static Tuple<string[], decimal[]> GetDetails()
    {
        string[] Size = { "S", "M", "L" };
        decimal[] Price = { 1, 3, 7.50 };

        return new Tuple<string[], decimal[]>(Size, Price);
    }
}
公共类BoxSizeViewModel
{
公共静态元组GetDetails()
{
字符串[]大小={“S”、“M”、“L”};
十进制[]价格={1,3,7.50};
返回新元组(大小、价格);
}
}

我正在尝试将大小和价格分配给IEnumerable,以便返回视图。

我认为最好使用新的类或结构来保存要显示的信息。但是,如果要使用元组,则应返回元组列表,而不是字符串元组,如下所示:

列表

不过,我仍然相信这将更具可读性:

public class ProductInfo 
{
   public string Size { get; set; }
   public decimal Price { get; set; }
}

public static List<ProductInfo> GetDetails()
{
 ...
}
公共类ProductInfo
{
公共字符串大小{get;set;}
公共十进制价格{get;set;}
}
公共静态列表GetDetails()
{
...
}
至于组合列表的问题,您需要的是LINQZIP操作


检查此处的代码:

您可以返回带有size和price属性的类如果这些大小与价格匹配,为什么不使用
元组[]
,或者更好地使用值元组
(字符串大小,十进制价格)[
,或者创建一个类来包含大小和价格值。