Bonsoir à tous,
J’essaie d’implémenter une liste doublement chainée en c#,je suis débutant en c#, après quelques recherche j'ai réussi a écrire ce petit code.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
 class Program
    {
 
        public struct Liste
        {
            public int value;
            public Liste? next;
            public Liste? prev;
 
            public Liste(int value)
            {
                this.value = value;
                next = null;
                prev = null;
            }
 
            public void ListeDisplay(Liste l)
            {
                Liste tmp;
 
                tmp.next = l;
 
                while (tmp.next.HasValue)
                {
                    Console.WriteLine("value = {0}", tmp.next.Value);
                    tmp.next = l.next;
 
                }
            }
 
            public void ListeAddFirst(ref Liste l, int value)
            {
                Liste tmp = new Liste(value);
 
                l.prev = tmp;
                tmp.next = l;
            }
 
        }
 
        static void Main(string[] args)
        {
            Liste a = new Liste(10);
 
            a.ListeAddFirst(ref a, 50);
            a.ListeAddFirst(ref a, 10);
            a.ListeDisplay(a);
 
            Console.Read();
 
        }
    }
Le problème il m'affiche une erreur ici
en me disant
Erreur 2 Le membre 'ListeChaineeDouble.Program.Liste.next' de la structure de type 'System.Nullable<ListeChaineeDouble.Program.Liste>' engendre un cycle dans la disposition de la structure D:***/Program.cs 14 27 ListeChaineeDouble