Advertisement
crackanddie

for Eldar

May 31st, 2023 (edited)
1,054
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.67 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace Stage_1_Kurs_Work_Seydametov
  9. {
  10.     public class BusList : IEnumerable<Bus>
  11.     {
  12.         private Bus[] buses;
  13.  
  14.         private int count;
  15.         public int Count { get { return count; } private set { count = value; } }
  16.  
  17.         public BusList(int amount)
  18.         {
  19.             buses = new Bus[amount];
  20.         }
  21.  
  22.         public Bus this[int i]
  23.         {
  24.             get
  25.             {
  26.                 return buses[i];
  27.             }
  28.             set
  29.             {
  30.                 buses[i] = value;
  31.             }
  32.         }
  33.  
  34.         public Bus Add(Bus bus)
  35.         {
  36.             if (count < buses.Length)
  37.             {
  38.                 buses[count] = bus;
  39.                 count++;
  40.             }
  41.             return bus;
  42.         }
  43.  
  44.         public bool Remove(Bus bus)
  45.         {
  46.             var ind = buses.ToList().IndexOf(bus);
  47.             if (ind >= 0)
  48.             {
  49.                 buses[ind] = null;
  50.                 for (int i = ind; i < buses.Length - 1; i++)
  51.                 {
  52.                     buses[i] = buses[i + 1];
  53.                 }
  54.                 buses[buses.Length - 1] = null;
  55.                 return true;
  56.             }
  57.             return false;
  58.         }
  59.  
  60.         public Bus[] GetBuses()
  61.         {
  62.             return buses;  
  63.         }
  64.  
  65.         public IEnumerator<Bus> GetEnumerator()
  66.         {
  67.             return buses.Take(count).GetEnumerator();
  68.         }
  69.  
  70.         IEnumerator IEnumerable.GetEnumerator()
  71.         {
  72.             return GetEnumerator();
  73.         }
  74.     }
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement