Используя один объект, который нужно вставить числа в цикле for, а затем итерации через метод getenumerator
Привет,
Я погуглил о получении ответа на ваш вопрос о кодировании и наткнулся на codeproject
Я изучал дженерики C#.. и у меня есть этот кусок кода. я могу понять точку, в которой цикл foreach повторяется по количеству объектов, но здесь в этом коде создается только один объект класса CustomList<int>, который является list1, а затем list1 используется в forloop для добавления(вставки) чисел через узлы..но как здесь работает GetEnumerator..у нас был только один объект-list1, который снова и снова используется в цикле for для вставки чисел...пожалуйста, направьте, если я четко сформулирую проблему
Что я уже пробовал:
namespace GenericsusingLinkedList_25_03 { // Test the CustomList class TestCustomList { static void Main() { // Declare a List of type int, then loop through the List CustomList<int> list1 = new CustomList<int>(); for (int x = 1; x <= 3; x++) { list1.Add(x); } foreach (int i in list1) { System.Console.Write(i + " "); } Console.ReadKey(); } } public class CustomList<t> { // Fields private Node head=null; // The nested class is also generic on T private class Node { // Fields private Node next; // T as private member data type private T data; // Properties public Node Next { get { return next; } set { next = value; } } // T as return type of the Property public T Data { get { return data; } set { data = value; } } // T used in non-generic constructor public Node(T pData) { this.next = null; this.data = pData; } } // T as method parameter type: public void Add(T pType) { Node n = new Node(pType); n.Next = head; //next of current node is assigned head of previous node this.head = n; //head of current is same as n } // Enables foreach on the List public IEnumerator<t> GetEnumerator() { Node current = head; while (current != null) { yield return current.Data; current = current.Next; } } } }