Premièrement, pensez-vous vraiment avoir une mutable struct? Qu'ils sont mauvais. De même, les champs publics.
Autres que que, que je venais de créer un constructeur prenant les deux bits de données:
class SomeClass
{
struct MyStruct
{
private readonly string label;
private readonly int id;
public MyStruct (string label, int id)
{
this.label = label;
this.id = id;
}
public string Label { get { return label; } }
public string Id { get { return id; } }
}
static readonly IList<MyStruct> MyArray = new ReadOnlyCollection<MyStruct>
(new[] {
new MyStruct ("a", 1),
new MyStruct ("b", 5),
new MyStruct ("q", 29)
});
}
Notez l'utilisation de ReadOnlyCollection à la place du tableau lui-même - ce qui va le rendre immuable, en évitant le problème d'exposer des tableaux directement.