Вы, вероятно, должны использовать что-то вроде хеша для этого, так как ArrayList
структур - это квадратное круглое отверстие с квадратным колышком.
Вы объявляете структуру так же, как calss.
public struct Foo {
public String Bar { get; set; }
public Int32 Biz { get; set; }
}
И вы можете создать список массивов, как если бы вы использовали любой тип
var list = new ArrayList();
list.add(object);
Другая проблема заключается в том, что ArrayList
не является универсальным, он будет приводить все к Object
, что означает, что вам придется привести все обратно к типу Foo
, чтобы работать с ним.
var foo = (Foo)list.item(0);
Вам было бы намного лучше, если бы вы пошли по маршруту List вместо Hash, используя общий класс списка, такой как List
и объявив его тип;
var list = List<Foo>();
var foo = new Foo { Bar = "Hello World", Biz = 1 };
list.add(foo);
Что касается поиска в списке, я предпочитаю использовать методы LINQ
, потому что они быстро кодируются и легко читаются.
var matches = list.Where( x => x.Biz > 1 );
Но если вы не можете сделать это, то итерация всегда работает
var matches = new List<Foo>();
foreach ( var foo in list ) {
if ( list.Biz > 1 ) {
matches.add(foo);
}
}