2010-07-18 6 views
0

1) const int[] array={1,2,3,4}; //this gives below errortype de référence constante et Array Initializing concetanation

"Error 1 'ConsoleApplication1.Main.array' is of type 'int[]'. 
A const field of a reference type other than string can only be initialized with null" 

À mon avis selon messeagge erreur, il ne meaningfull utiliser const pour référence types.Am i ne va pas?

2) Comment puis-je concaténer int array? Exemple:

int[] x={1,2,3} + {4,5,6}; 

Je sais que l'opérateur + ne fonctionnera pas quelle est la meilleure façon de le faire sous forme de chaînes?

Répondre

2

La méthode d'extension concat fait cela. Pas de code de grande clarté, mais le fait.

(new int[] { 1, 2, 3, 4 }).Concat(new int[] { 5, 6, 7, 8 }).ToArray(); 
2

1) Oui, le seul type de référence qui soit utile comme constante est String.

2) Pour concaténer des tableaux que vous créez un nouveau tableau et copier le contenu des tableaux à elle:

int[] a = { 1, 2, 3 }; 
int[] b = { 4, 5, 6 }; 

int[] x = new int[a.Length + b.Length]; 
a.CopyTo(x, 0); 
b.CopyTo(x, a.Length); 

Je ne sais pas ce que vous comptez comme la « meilleure » méthode, mais c'est la le plus efficace. (Un test rapide montre que cela est 10-20 fois plus rapide qu'avec la méthode d'extension Concat.)

+0

Je n'avais pas de point de performance. Je m'intéresse juste à plus de lisibilité et de clarté. – Freshblood