将 C# 列放入数组中

本文关键字:数组 | 更新日期: 2023-09-27 18:37:06

我想把每一列放到单独的数组中。以便我以后可以从组合框中选择类别并显示值。但我不知道该怎么做,我什至不知道数组是否是一个好主意。提前谢谢。

Category1    Category2       Category3
----------  ------------    ------------
  13            1              12  
  12            1              13
  12            5              14
  44            3              15
  23            6              16

我试过这样的事情:

  if(char.IsNumber(s.Trim().ToCharArray().ElementAt(0)))
                {
                    double[,] p = new double[samples, columns];

                    for(int i=0;i<samples;i++)
                    {
                        for(int j=0;j<columns;j++)
                        {
                            //p[i,j]=
                        }
                    }
                }

将 C# 列放入数组中

我这样做的方法是首先创建一个类:

public class Category
{
    public int Category1 {get;set;}
    public int Category2 {get;set;}
    public int Category3 {get;set;}
}

然后创建一个列表并填充它:

var categories = new List<Category> { 
                           new Category { Category1 = 13, Category2 = 1, Category3 = 12 },
                           new Category { Category1 = 12, Category2 = 1, Category3 = 13 } 
    };

我只会使用列表(除非元素的数量保持不变且已知)
你也没有提到你从哪里阅读这个列表。如果它只是一个文件,则将其转换为某种类型的xml并解析它或仅解析文本文件。如果是 db,则使用 ORM 将以下类映射到 db 对象或手动读取它们。

为您的组合盒
创建一个类并将数据解析到此类对象中

class Category
{
  public string CategoryName {get; set;}
  public List<int> CategoryItems {get; set}
}

对于 xaml 中的组合框,有这样的东西

<ComboBox ItemSource="{Binding Categories}"
          DisplayMemberPath="{Binding CategoryName}"
          SelectedItem="{Binding SelectedCategoryIndex}"/>
<ComboBox ItemSource="{Binding CategoryItems}"/>

在您的视图模型中,绑定就是这样

public int SelectedCategoryIndex {get; set;}
public List<Category> Categories {get; private set;}
public List<int> CategoryItems
{
  get
  {
    return this.Categories[SelectedCategoryIndex].CategoryItems;
  }
}

希望这有帮助