Sous-ensemble d'un Tableau en C#
Si j'ai un tableau avec 12 éléments et je veux un nouveau tableau avec les gouttes de la première et de 12 éléments. Par exemple, si mon tableau ressemble à ceci:
__ __ __ __ __ __ __ __ __ __ __ __
a b c d e f g h i j k l
__ __ __ __ __ __ __ __ __ __ __ __
Je veux transformer ou de créer un nouveau tableau qui ressemble à
__ __ __ __ __ __ __ __ __ __
b c d e f g h i j k
__ __ __ __ __ __ __ __ __ __
Je sais que je peux le faire par itération sur eux. Je me demandais juste si il y avait une manière plus propre construite en C#.
**MISE À JOUR POUR CORRIGER UNE FAUTE DE FRAPPE. Changé 10 éléments à 12 éléments.
- N'est-ce pas "j" de la 10ème élément dans le tableau si? Ou avez-vous dire en premier et dernier éléments?
Vous devez vous connecter pour publier un commentaire.
LINQ est votre ami. 🙂
Un peu moins efficace que la création manuelle de la matrice et de parcourir, bien sûr, mais très simple...
Légèrement lengithier méthode qui utilise
Array.Copie
est la suivante.Skip
après laTake
? Comme:oldArray.Take(oldArray.Length - 1).Skip(1).ToArray()
? De toute façon, sont susceptibles de l'égalité dans l'efficacité.Linq est tout beau et chic, mais si vous êtes à la recherche d'un 1-liner, vous pourrait juste jeter ensemble vos propres fonctions de l'utilitaire:
Alors vous pouvez faire ce qui suit:
Vous pouvez faire cela avec
Array.Copie
ou LINQ.Vous pouvez utiliser
ArraySegment<T>
structure comme ci-dessous:Vérifier ici un méthode d'extension qui rend l'utilisation encore plus facile.
Tableau.Copier() le fera pour vous, mais vous avez encore de créer un nouveau tableau avec sa taille correcte.
Si vous voulez éviter manuellement l'indexation du tableau. N'essayez pas de tirer la demande de n'importe où si:
C# 8 a un
Range
etIndex
type