C# Load entiers et affichage pair / impair
Bonjour demandais si il ya un moyen plus facile pour afficher pair /impair de chiffres.
Je sais que je pourrais faire une boucle for et de charger une liste. Ensuite, je peux écrire un autre pour la boucle
pour parcourir la liste et de vérifier si une valeur est pair /impair:
for(i=0; i<100; i++)
if(myList[i]%2==0) //even
//do something
else
//odd do something
Mais est-il possible de raccourcir ce simplement que je peux facilement obtenir une liste de les nombres pairs ou impairs. Pas de devoirs demandais juste.
OriginalL'auteur oJM86o | 2010-03-02
Vous devez vous connecter pour publier un commentaire.
Pourriez-vous utiliser une sorte de lambdas:
L'Énumérable juste des charges de la liste avec les 1 à 100, et ensuite, j'ai simplement arracher toutes les chances /evens et de les imprimer ensuite. Tout cela peut être réduit à:
e,o disposer d'un implicite de type var. Le compilateur peut déterminer son type de sorte que ces deux lignes sont équivalentes à:
Alors pour trouver la cote /evens directement à un type de liste:
Et que l'impression qu'il est répertorié dans mon code initial.
Lippert peut-être num % 2==1 était un mauvais choix...comme 2==1 retourne false :). Éditer...laissez-moi savoir si je me suis trompé.
Bonne estimation, de corriger corriger, mais pas de cigare parce que vous n'avez pas réellement diagnostiquer le problème. Tentez votre code d'origine avec une gamme qui va de -100 à +100.
le comte ne peut pas être < 0.
Correct. Juste pour être clair pour les autres lecteurs:%2 est -1 si A est négatif d'un nombre impair. Donc A%2==1 n'est pas un test pour "bizarre", c'est un test pour "est à la fois positif et impair". '%2!=0 est un test pour "bizarre".
OriginalL'auteur JonH
LINQ façon... Étrange et Même un nombre entre 1 et 100.
Lonli-Lokli mais ensuite, il y a deux tête de commutateurs de comprendre ce qui se passe. La lisibilité est plus important pour une telle quantité insignifiante de l'épargne.
Bon point, mais je pense que les gens devraient être encouragés à écrire des choses dans un performant, expliquent-ils. par exemple:
// i & 1 == 0 is faster than i % 2 == 0
OriginalL'auteur Jesper Palm
Vous pouvez utiliser LINQ pour sortir seulement la pair ou impair, et puis processus:
OriginalL'auteur Reed Copsey
Je comprends que vous travaillez pour débloquer certaines fonctionnalités, peut-être essayer quelques nouvelles / questions sans réponse bien 🙂
OriginalL'auteur Ashot
Je ne pense pas que vous ayez à créer la première boucle. Vous pourriez tout simplement:
Ou encore:
Lippert -- Ah, je vois. Merci.
OriginalL'auteur davecoulter
Remplir votre liste en fonction de ces formules
OriginalL'auteur Ian Jacobs
Si vous avez uniquement besoin de la moitié des numéros, il vous suffit de créer la moitié des numéros ( .. ; .. ; i = i + 2)
Si vous avez besoin de tous les chiffres, mais veulent éviter une boucle supplémentaire, vous pouvez les marquer ou de processus lors de la phase initiale de la boucle.
Ou, lors de la création, de faire jusqu'à trois listes/tableaux - un pour tous les nombres, l'autre pour la cote, et la troisième pour les evens.
Est-il une application spécifique?
OriginalL'auteur Jason Kleban