IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Spécifier la zone du tableau à utiliser


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Spécifier la zone du tableau à utiliser
    Bonjour, je vais utiliser un exemple pour exposer mon problème mais je pense que si il y a une solution je pourrai l'utiliser souvent.
    exemple : je possède un tableau de point que j'utilise avec DrawLines() ou même DrawCurve() mais je souhaiterai utiliser qu'une partie de ses points. Évidemment je peux faire une réduction de tableau avant mais voilà quelquechose comme e.Graphics.DrawLines(monPen, monTableau[9 to 18]); serait super , peut être une expression lambda ?
    Merci d'avance pour vos réponses j'ai cherché du mieux que j'ai pu avant pour trouver une réponse mais en vain.

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 648
    Points : 2 170
    Points
    2 170
    Par défaut
    Bonjour,

    il y a Array.Copy() qui permet de prendre une partie d'un tableau, du coup tu peux te faire cette petite méthode d'extension sympa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static T[] GetRange<T>(this T[] array, int index, int length)
    {
        T[] newArray = new T[length];
        Array.Copy(array, index, newArray, 0, length);
        return newArray;
    }
    dans ton cas, l'utilisation donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawLines(monPen, monTableau.GetRange(9,9));

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    bonjour

    tu aurais ça par exemple comme solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                PointF[] points = new PointF[10];
                var res = new ArraySegment<PointF>(points,2,5);
                g.DrawLines(new Pen(Color.Red), res.Array);

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    bonjour,
    merci à tous les deux pour vos réponses rapides et intéressantes.
    TheMonz31,ta méthode est alléchante, cela évite la création mémoire d'un nouveau tableau ( non?) cela avait l'air de fonctionner chez moi la variable res contenait bien le bon nombre d'élément mais lors du traçage tous le tableau a était utilisé. J'ai donc regardé un peu la classe ArraySegment et j'ai remplacé par et cela à fonctionner.

    PixelJuice j'aimerai bien créer cette méthode d'extension mais je ne sais pas bien où. es ce qu'on peux la rajouter à la classe Array?
    Sinon effectivement j'avais utiliser la méthode Array.Copy().

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Spécifier quel version de java utiliser.
    Par Rakken dans le forum Firefox
    Réponses: 2
    Dernier message: 02/08/2008, 20h19
  2. probleme d'insertion de zone dans tableau
    Par comar33 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 19/06/2008, 15h12
  3. Tableau utilisant deux datasets
    Par txikiludo dans le forum BIRT
    Réponses: 18
    Dernier message: 28/04/2008, 19h04
  4. Quel tableau utiliser
    Par elrudaille dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 03/02/2007, 11h46
  5. [C#] Quel type d'objet (tableau) utiliser?
    Par cyllix dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/06/2006, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo