c#收藏两个arraylist的集合

时间:2013-01-10 12:38:53

标签: c# collections multidimensional-array arraylist

我正在使用C#。

我创建了两个名为NamesPerformances的arraylists,其中的数据从我的数据库中填充。

我想创建一个arraylist或类似2维数组的东西 array[Name][Performance]

  • array[0][0] =>应该给我第一个人的第一个表现数据
  • array[0][1] =>应该给我第一个第二个性能数据
  • array[0][2] =>应该给我第一个人第三个表现数据...

由于不同的SQL查询,NamesPerformance的大小可以更改。 由于大小是可变的,我试图在这些循环中使用NamePerformance arraylists的循环和大小。我如何处理这个集合以容纳我的两个arraylists?

4 个答案:

答案 0 :(得分:4)

为什么不使用通用列表?

然后,您可以创建一个包含Person及其性能数据的类型,如下所示:

class PersonPerformance
{
   public string Name { get; set; }

   public List<Performance> Performances { get; set; }
}

您可以轻松创建一个集合:

var performances = new List<PersonPerformance>();

答案 1 :(得分:1)

你可以使用类似的东西

        IList<KeyValuePair<string, string>> innerList = new List<KeyValuePair<string, string>>();
        IList<IList<KeyValuePair<String,string>>> list=new List<IList<KeyValuePair<string, string>>>();
        list.Add(innerList);

KeyValuePair包含Name和Perfomance元素

答案 2 :(得分:0)

我假设你的名字是字符串类型。

我通常会这样做(如果我没有设定尺寸)

List<KeyValuePair<string, TYPE_X>> list = new List<KeyValuePair<string, TYPE_X>>();

或(尺寸已知)

KeyValuePair<string, TYPE_X>[] array = new KeyValuePair<string, TYPE_X>[size];

或更好

 public Dictionary<string, TYPE_X> dict = new Dictionary<string, TYPE>();

如果名称是唯一的,我想像那样访问它们(不按顺序):

TYPE_X object = dict["myName"];

答案 3 :(得分:0)

您可以使用使用Dictionary<Name,List<Performance>>类型 因此,对于每个名称,您都会获得一组表演