Probablement très simple - je commence avec C # et j'ai besoin d'ajouter des valeurs à un tableau, par exemple:
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
Pour ceux qui ont utilisé PHP, voici ce que j'essaie de faire en C #:
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
Réponses:
Vous pouvez le faire de cette façon -
Alternativement, vous pouvez utiliser des listes - l'avantage avec les listes étant, vous n'avez pas besoin de connaître la taille du tableau lors de l'instanciation de la liste.
Edit: a) pour les boucles sur la liste <T> sont un peu plus de 2 fois moins cher que pour les boucles pour chaque sur la liste <T>, b) la boucle sur le tableau est environ 2 fois moins cher que la boucle sur la liste <T>, c) la boucle sur tableau utilisant for est 5 fois moins cher que de boucler sur List <T> en utilisant foreach (ce que la plupart d'entre nous font).
la source
new int[]{}
!!!!!OutOfRangeException
dès que vous exécuterez le code. Les tableaux doivent être initialisés avec la taille que vous allez utiliser, ils réservent tout l'espace au début, ce qui les rend très rapides, mais il n'est pas possible de les redimensionner.Si vous écrivez en C # 3, vous pouvez le faire avec une seule ligne:
Cet extrait de code suppose que vous avez une directive using pour System.Linq en haut de votre fichier.
D'un autre côté, si vous cherchez quelque chose qui peut être redimensionné dynamiquement, comme cela semble être le cas pour PHP (je ne l'ai jamais réellement appris), alors vous voudrez peut-être utiliser une liste au lieu d'un int [] . Voici à quoi ressemblerait ce code:
Notez cependant que vous ne pouvez pas simplement ajouter un 401e élément en définissant les termes [400] sur une valeur. Vous devriez plutôt appeler Add (), comme ceci:
la source
L'utilisation de la méthode de Linq Concat rend cela simple
résultat 3,4,2
la source
Des réponses sur la façon de le faire en utilisant un tableau sont fournies ici.
Cependant, C # a une chose très pratique appelée System.Collections :)
Les collections sont de fantastiques alternatives à l'utilisation d'un tableau, bien que beaucoup d'entre elles utilisent un tableau en interne.
Par exemple, C # possède une collection appelée List qui fonctionne de manière très similaire au tableau PHP.
la source
Utiliser une liste comme intermédiaire est le moyen le plus simple, comme d'autres l'ont décrit, mais comme votre entrée est un tableau et que vous ne voulez pas simplement conserver les données dans une liste, je suppose que vous pourriez être préoccupé par les performances.
La méthode la plus efficace consiste probablement à allouer un nouveau tableau, puis à utiliser Array.Copy ou Array.CopyTo. Ce n'est pas difficile si vous souhaitez simplement ajouter un élément à la fin de la liste:
Je peux également poster du code pour une méthode d'extension d'insertion qui prend un index de destination en entrée, si vous le souhaitez. C'est un peu plus compliqué et utilise la méthode statique Array.Copy 1-2 fois.
la source
Basé sur la réponse de Thracx (je n'ai pas assez de points pour répondre):
Cela permet d'ajouter plus d'un élément au tableau ou simplement de passer un tableau en paramètre pour joindre deux tableaux.
la source
Vous devez d'abord allouer le tableau:
la source
Ce serait ainsi que je le coderais.
la source
Les tableaux C # sont de longueur fixe et toujours indexés. Optez pour la solution de Motti:
Notez que ce tableau est un tableau dense, un bloc contigu de 400 octets où vous pouvez déposer des objets. Si vous voulez un tableau de taille dynamique, utilisez un List <int>.
Ni int [] ni List <int> n'est un tableau associatif - ce serait un Dictionary <> en C #. Les tableaux et les listes sont denses.
la source
la source
Vous ne pouvez pas simplement ajouter un élément à un tableau facilement. Vous pouvez définir l'élément à une position donnée comme décrit dans le texte tombé888 , mais je recommande d'utiliser un
List<int>
ou un à laCollection<int>
place et à utiliserToArray()
si vous en avez besoin converti en tableau.la source
Si vous avez vraiment besoin d'un tableau, les problèmes suivants sont les plus simples:
la source
J'ajouterai ceci pour une autre variante. Je préfère davantage ce type de lignes de codage fonctionnelles.
la source
Si vous ne connaissez pas la taille du tableau ou si vous avez déjà un tableau existant auquel vous ajoutez. Vous pouvez vous y prendre de deux manières. La première consiste à utiliser un générique
List<T>
: pour ce faire, vous souhaiterez convertir le tableau en avar termsList = terms.ToList();
et utiliser la méthode Add. Ensuite, lorsque vous avez terminé, utilisez lavar terms = termsList.ToArray();
méthode pour reconvertir en tableau.La deuxième façon consiste à redimensionner le tableau actuel:
Si vous utilisez .NET 3.5
Array.Add(...);
Les deux vous permettront de le faire de manière dynamique. Si vous allez ajouter de nombreux éléments, utilisez simplement a
List<T>
. S'il ne s'agit que de quelques éléments, les performances de redimensionnement du tableau seront meilleures. C'est parce que vous prenez plus de succès pour créer leList<T>
objet.Temps en tiques:
3 éléments
400 éléments
la source
Juste une approche différente:
la source
=
au lieu de l'opérateur de comparaison? Vous pouvez laisser de côté la variable de combat et l'utiliserruns < 400
pour contrôler la boucle.une approche consiste à remplir un tableau via LINQ
si vous voulez remplir un tableau avec un élément, vous pouvez simplement écrire
en outre, si vous souhaitez remplir un tableau avec plusieurs éléments, vous pouvez utiliser le code précédent dans une boucle
la source
la source
la source
la source
Pour ajouter les valeurs de liste au tableau de chaînes à l'aide de C # sans utiliser la méthode ToArray ()
La sortie du tableau de valeurs contient:
une
deux
Trois
quatre
cinq
la source