0

b> 这段 C# 代码创建了一个 ArrayList。然后它向 ArrayList 添加了一些“BoxesOfWidgets”,在每个盒子中添加了 Widget。GetRidOfTheSmallWidgets 方法旨在摆脱所有

4

2 回答 2

1
foreach (object objBox in colBoxesOfWidgets)
        {
            BoxOfWidgets box = (BoxOfWidgets)objBox;
            for (int i = 0; i < box.colWidgets.Count; i++ )
            {
                Widget widget = (Widget)box.colWidgets[i];
                if (widget.length < 20f)
                {
                    box.colWidgets.Remove(widget);
                    i--;
                }
            }
        }

}

您可以使用泛型类型:

List<BoxOfWidgets> boxs = new List<BoxOfWidgets>();
boxs.Add(new BoxOfWidgets("Cardboard"));
于 2012-04-27T07:57:38.183 回答
1

也试过了

public static ArrayList GetRidOfTheSmallWidgets(ArrayList colBoxesOfWidgets)
{
    BoxOfWidgets[] bow = colBoxesOfWidgets.OfType<BoxOfWidgets>().ToArray();

    for (int i = 0; i < bow.Length; i++)
    {
        Widget[] warr = bow[i].colWidgets.OfType<Widget>().ToArray();
        for (int j = 0; j < warr.Length; j++)
        {
            if (warr[j].length < 20)
                bow[i].colWidgets.Remove(warr[j]);
        }
    }            
    return colBoxesOfWidgets;
}
于 2012-04-27T07:55:00.507 回答