C#列成阵列

时间:2016-03-01 23:05:46

标签: c# arrays

我想将每列放入单独的数组中。这样我以后可以从组合框中选择类别并显示值。但我不知道如何做到这一点,我甚至不知道数组是否是一个好主意。提前谢谢。

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]=
                        }
                    }
                }

2 个答案:

答案 0 :(得分:1)

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

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

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

{{1}}

答案 1 :(得分:1)

我只是使用列表(除非元素的数量保持不变并且已知) 你还没有提到你从哪里读这个列表。 如果它只是一个文件将其转换为某种类型的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}"/>

在你的viewmodel中,这就是你如何拥有它

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

希望这有帮助