访问列表中的元素

时间:2012-03-30 09:04:03

标签: c# list

我在一个表单中生成了8 * 16个ovalshape。代码是:

for (int i = 0; i < 16; i++)
{
    for (int j = 0; j < 8; j++)
    {
        OvalShape ovl = new OvalShape();
        ovl.Width = 20;
        ovl.Height = 20;
        ovl.FillStyle = FillStyle.Solid;
        ovl.FillColor = Color.Transparent;
        ovl.Name = "oval" + j + "" + i;

        ovl.Location = new Point((ovl.Width * i) * 2, (ovl.Height * j) * 2);

        ovalShape.Add(ovl);
    }
}

foreach (OvalShape os in ovalShape)
{
    Microsoft.VisualBasic.PowerPacks.ShapeContainer shapeContainer = 
                           new Microsoft.VisualBasic.PowerPacks.ShapeContainer();
    os.Parent = shapeContainer;
    this.Controls.Add(shapeContainer);
}

现在我希望以不同方式访问每个ovals形状。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

由于ovalShapeList<OvalShape>,您可以使用索引器访问任何一个项目:

var anOval = ovalShape[0];

答案 1 :(得分:0)

您已经ovalShape循环访问foreach中的每个ovals形状

foreach (OvalShape os in ovalShape)
{
  //...
}

否则你也可以通过它的索引访问每个ovalshape,如

var newOvalShape = ovalShape[0];

答案 2 :(得分:0)

你已经将你的控制命名为ovl.Name =“oval”+ j +“”+ i;

所以,我认为你可以创建像Dictionary<string , OvalShape> dic

这样的双重主义者

然后您可以将其设置为

//...
ovl.Name = "oval" + j + "" + i;
dic.add(ovl.Name , ovl);
//...

然后,您可以在其他方法中访问此字典,并通过其名称访问它。