📋 שיעור 6: רשימות חכמות (List)

⏱️ 1 שעה | 🎯 List<T> - מערכים דינמיים

→ קודם 🏠 בית הבא ←

🎯 למה List?

מערכים קשיחים - גודל קבוע. List דינמי - גודל משתנה!

using System;
using System.Collections.Generic;  // חשוב!

class Program
{
    static void Main()
    {
        // יצירת רשימה
        List<int> numbers = new List<int>();
        
        // הוספה
        numbers.Add(10);
        numbers.Add(20);
        numbers.Add(30);
        
        // גישה
        Console.WriteLine(numbers[0]);  // 10
        
        // גודל
        Console.WriteLine(numbers.Count);  // 3
        
        // מחיקה
        numbers.Remove(20);  // מוחק את 20
        numbers.RemoveAt(0); // מוחק במיקום 0
        
        // בדיקה
        if (numbers.Contains(30))
            Console.WriteLine("יש 30!");
        
        // מעבר
        foreach (int num in numbers)
            Console.WriteLine(num);
    }
}

💡 Student עם List

class Student
{
    public string Name;
    public List<double> Grades;  // List במקום מערך!
    
    public Student(string name)
    {
        Name = name;
        Grades = new List<double>();
    }
    
    public void AddGrade(double grade)
    {
        Grades.Add(grade);  // פשוט מאוד!
    }
    
    public double GetAverage()
    {
        if (Grades.Count == 0) return 0;
        double sum = 0;
        foreach (double g in Grades)
            sum += g;
        return sum / Grades.Count;
    }
}

✍️ תרגולים

1. מערכת ספרייה (20 דק)

מחלקת Book: Title, Author, Year

מחלקת Library: List<Book> books

Methods: AddBook, RemoveBook, PrintAllBooks

2. רשימת משימות (20 דק)

מחלקת Task: Description, IsComplete

List<Task> + Methods לסימון/מחיקה

→ קודם 🏠 בית הבא: Interfaces ←