Advertisement
thegreen9

MyList<T> : IList<T>

Mar 19th, 2018
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.58 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 ConsoleApp11
  9. {
  10.     class Program
  11.     {
  12.         static void Main()
  13.         {
  14.              
  15.             Monster Rook = new Monster() { Name = "Rook", Side = "Enemy" };
  16.             Monster Gorge = new Monster() { Name = "Gorge", Side = "Hero" };
  17.             Monster Maet = new Monster() { Name = "Maet", Side = "Hero" };
  18.             Monster Destroyer = new Monster() { Name = "Destroyer", Side = "Enemy" };
  19.             Monster Teak = new Monster() { Name = "Teak", Side = "Enemy" };
  20.             MyList list = new MyList();
  21.            
  22.  
  23.             // добавим монстров в список
  24.             list.Add(Rook);
  25.             list.Add(Gorge);
  26.             list.Add(Maet);
  27.             list.Add(Destroyer);
  28.            
  29.            
  30.  
  31.             //Есть ли монстр Rook?
  32.             if (list.Contains(Rook)) Console.WriteLine(Rook.Name+" "+Rook.Side);
  33.             // Кол-во элементов в списке
  34.             Console.WriteLine(list.Count);
  35.             // добавим на место Destroyera монстра Teak
  36.             list.Insert(3, Teak);
  37.             // удалим монстра
  38.             list.Remove(Gorge);
  39.             // удалим монстра по индексу
  40.             list.RemoveAt(0);
  41.             // перечисляем всех монстров в списке
  42.             foreach(Monster m in list)
  43.             {
  44.                 Console.WriteLine(m.Name + " " + m.Side);
  45.             }
  46.             Console.WriteLine(list.Count);
  47.  
  48.  
  49.  
  50.         }
  51.         public class Monster
  52.         {
  53.  
  54.             public string Name;
  55.             public string Side;
  56.         }
  57.  
  58.         //MyLIST
  59.         public class MyList : IList<Monster>
  60.         {
  61.             List<Monster> monsters = new List<Monster>();
  62.             Monster m = null;
  63.  
  64.             public Monster this[int index]
  65.             {
  66.                 get { return m; }
  67.                 set { this.m = monsters[index]; }
  68.             }
  69.  
  70.             public int Count
  71.             {
  72.                 get { return monsters.Count; }
  73.             }
  74.  
  75.             public bool IsReadOnly => throw new NotImplementedException();
  76.  
  77.             public void Add(Monster item)
  78.             {
  79.                 monsters.Add(item);
  80.             }
  81.  
  82.             public void Clear()
  83.             {
  84.                 monsters.Clear();
  85.             }
  86.  
  87.             public bool Contains(Monster item)
  88.             {
  89.                 return monsters.Contains(item);
  90.             }
  91.  
  92.             public void CopyTo(Monster[] array, int arrayIndex)
  93.             {
  94.                 monsters.CopyTo(array, arrayIndex);
  95.             }
  96.  
  97.             public IEnumerator<Monster> GetEnumerator()
  98.             {
  99.                 return monsters.GetEnumerator();
  100.             }
  101.  
  102.             public int IndexOf(Monster item)
  103.             {
  104.                 return monsters.IndexOf(item);
  105.             }
  106.  
  107.             public void Insert(int index, Monster item)
  108.             {
  109.                 monsters.Insert(index, item);
  110.             }
  111.  
  112.             public bool Remove(Monster item)
  113.             {
  114.                 return monsters.Remove(item);
  115.             }
  116.  
  117.             public void RemoveAt(int index)
  118.             {
  119.                 monsters.RemoveAt(index);
  120.             }
  121.  
  122.             IEnumerator IEnumerable.GetEnumerator()
  123.             {
  124.                 return monsters.GetEnumerator();
  125.             }
  126.            
  127.         }
  128.        
  129.     }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement