none
LinkedList items tauschen nach ID RRS feed

  • Frage

  • Hi, 

    ich habe eine LinkedList und ich will darin Items tauschen.
    Bekannt sind mir nur die ID's der Items, die ich tauschen will.
    ZBsp. in er eine LinkedList<int> list

    LinkedList<int> list = new LinkedList<int>();
    for (int i = 1; i < 10; i++)
    {
        list.AddLast(i);
    }

    Sollen das 5. und 7.Element getauscht werden,
    so das die Reihenfolge so aussieht: 1,2,3,4,7,6,5,8,9.

    Wie tausche ich die Reihenfolge der LinkedList?

    Grüße,

    von Frank


    www.energiewende-mach-ich-selbst.de

    Montag, 3. Juli 2017 08:51

Antworten

  • Hi Frank,
    hier mal eine kleine Demo, wie man das machen kann:

    using System;
    using System.Collections.Generic;
    
    namespace ConsoleApp1
    {
      class Program10
      {
        static void Main(string[] args)
        {
          try
          {
            Demo c = new Demo();
            c.Execute();
          }
          catch (Exception ex) { Console.WriteLine(ex.ToString()); }
          Console.Write("Fertig, Abschluss mit beliebiger Taste");
          Console.ReadKey();
        }
        internal class Demo
        {
          LinkedList<int> list = new LinkedList<int>();
          public Demo()
          {
            for (int i = 1; i < 10; i++)
            {
              list.AddLast(i);
            }
          }
    
          internal void Execute()
          {
            // 5. Element merken
            var current = list.Find(6);
            var prev = current.Previous;
            var next = current.Next;
            list.Remove(prev);
            list.Remove(next);
            list.AddBefore(current, next);
            list.AddAfter(current, prev);
            // Kontrolle
            foreach (var item in list)
            {
              Console.WriteLine("{0}",item);
            }
          }
        }
      }
    }
    


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Montag, 3. Juli 2017 13:57