访问列表中的元素

本文关键字:元素 列表 访问 | 更新日期: 2023-09-27 18:29:34

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

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);
}

现在我想以不同的方式访问每个椭圆形。我怎么能这么做?

访问列表中的元素

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

var anOval = ovalShape[0];

您已经在foreach循环中以不同的方式访问ovalShape中的每个椭圆

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

否则,您也可以通过索引访问每个椭圆形状,如

var newOvalShape = ovalShape[0];

您已经将控件命名为ovl。Name="oval"+j+"+i;

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

然后你可以像一样设置它

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

然后,您可以通过其他方法访问该字典,并按其名称进行访问。