如何解决List <list <>&gt;使用array [] operator </list <>的项目

时间:2013-02-27 21:24:01

标签: c# arrays list object

这是我的问题: 我有一个对象“Strip”,我需要有一个列表或这些条带的数组“stripList”,然后我需要有一个来自不同stripList的列表,我称之为“listOfStripList”。我知道我可以这样保存:

List<List<Strip>> listOfStripList=new List<List<Strip>>();

我想以这种方式拥有这个对象的原因是因为每次我想要访问每个stripList而不使用For循环。 例如,我想说listOfStripList [1],这与第一个条带列表有关。

有没有办法按数组定义这些列表?

2 个答案:

答案 0 :(得分:0)

List<T>T[]都允许使用索引器(也就是[]运算符)。所以您可以像下面这样使用您的列表:

List<Strip> firstList = listOfStripList[0];

虽然,如果你必须将它作为一个数组,你可以这样做:

List<Strip>[] arrayOfListStrip = listOfStripList.ToArray();

答案 1 :(得分:0)

listOfStripList[0]会为您提供List<Strip>个对象。致电listOfStripList[0][0]应该会为您提供listOfStripList

中第一个列表中的第一项

这是一个小提琴: https://dotnetfiddle.net/XdDggB

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<List<Strip>> listOfStripLists = new List<List<Strip>>();

        for(int j = 65; j < 100; j++){

            List<Strip> stripList = new List<Strip>();

            for(int i = 0; i < 10; i++){
                stripList.Add(new Strip(){myval = ((char)j).ToString() + i.ToString()});
            }

            listOfStripLists.Add(stripList);
        }// end list of list

        Console.WriteLine(listOfStripLists[0][1].myval);
    }


    public class Strip
    {
        public string myval {get;set;}  
    }
}