J'ai un struct (.NET 3.5):Affecter une liste de valeurs à une structure en C#?
struct ColumnHeadings
{
public string Name ;
public int Width ;
} ;
Et quand je tente d'attribuer une liste de valeurs à ce struct je reçois un « ne peut pas convertir implicitement type string/int ... »:
private void doSomething()
{
ColumnHeadings[,] ch = new ColumnHeadings[,]{{"column1",100},
{"column2",100},{"column3",100}};
}
Les valeurs de structure peuvent-elles être affectées de la même manière qu'un tableau multidimensionnel? Ou dois-je attribuer les valeurs à l'aide ?:
ch.Name = "column 1";
MISE À JOUR:
Merci à d'excellents commentaires de Marc la solution correcte est:
Struct:
struct ColumnHeadings
{
private readonly string name;
private readonly int width;
public string Name { get { return name; } }
public int Width { get { return width; } }
public ColumnHeadings(string name, int width)
{
this.name = name;
this.width = width;
}
}
Puis dans la méthode:
var ch = new[]{new ColumnHeadings("column1",100),
new ColumnHeadings("column2",100),
new ColumnHeadings("column3",100)};
Et le link pourquoi les structures mutables ne sont pas une bonne idée.
Par curiosité, pourquoi est 'ColumnHeadings' deux dimensions? –
@ C. Ross - sa 2D en raison d'essayer de mashup tableaux/structures ... :) –
un tableau 2D doit contenir des données homogènes; Ceci est vraiment un tableau à 1 dimension où chaque élément a 2 valeurs - très différentes –