Пример #1
0
        static void Main(string[] args)
        {
            // An array is already an IEnumerable => foreach works
            var array = new int[] { 1, 2, 3 };

            foreach (var a in array)
            {
                Console.WriteLine($"A is {a}");
            }

            // The foreach loop will be compile down to this version (low-level)
            var enumerator = array.GetEnumerator();

            while (enumerator.MoveNext())    // Return true if there is another item
            {
                Console.WriteLine($"Enumerator A is {enumerator.Current}");
            }

            // ------------------------ CUSTOM ENUMERABLE --------------------------------

            GradeBook gradebook = new GradeBook();

            gradebook.AddStudent(new Student()
            {
                FirstName = "Lejing", LastName = "Huang", UHID = 1800000, Grade = 85
            });
            gradebook.AddStudent(new Student()
            {
                FirstName = "Tony", LastName = "Stark", UHID = 1800001, Grade = 60.5m
            });
            gradebook.AddStudent(new Student()
            {
                FirstName = "Winnie", LastName = "Li", UHID = 1800002, Grade = 90
            });
            gradebook.AddStudent(new Student()
            {
                FirstName = "Simon", LastName = "Shaw", UHID = 1800003, Grade = 10
            });

            foreach (Student student in gradebook)
            {
                Console.WriteLine($"Name: {student.FirstName} {student.LastName}, UHID: {student.UHID}, Grade: {student.Grade}");
            }
        }