Ich glaube, miniC#, du hast einen anderen Denkfehler.
Du willst vermutlich kein Array von IList<tokenStruct> Objekten erzeugen (denn dies wäre dann ein zweidimensionales Array von tokenStruct-Objekten), sondern du möchtest einfach eine eindimensionale Liste erstellen, oder?
Außerdem verwechselst du m.E. Schnittstelle und Implementierung.
IList, IEnumerable sowie deren generischen Äquivalente IList<>, IEnumerable<> etc. sind nur Schnittstellen (interfaces), d.h. sie beschreiben welche Eigenschaften und Methoden vorhanden sein müssen, damit man solche Objekte benutzen kann.
Ein Array beispielsweise ist so deklariert:
C#-Quelltext
1:
| public abstract class Array : ICloneable, IList, ICollection, IEnumerable |
d.h. jede Methode welche z.B. ein IList oder ein ICollection erwartet, kannst du auch mit einem Array benutzen.
Am besten ist jedoch, du verwendest statt der festen Arrays die dynamische Klasse List<>:
C#-Quelltext
1:
| public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable |
,
welche ebenfalls diese Schnittstellen unterstützt.
Dein Beispiel sähe dann so aus:
C#-Quelltext
1: 2: 3: 4:
| private List<_tokenStruct> _list = new List<_tokenStruct>();
_list.Add(new _tokenStruct()); |
am besten, du liest dann mal Kapitel 4:
openbook.galileocomp...ng.de/visual_csharp/