Существует ли библиотечная функция удаления элемента из массива - C#

Узнай цену своей работы

Формулировка задачи:

Существует ли библиотечная функция удаления элемента из массива в С#, подобно функции RemoveRange для списков? В данном случае хочу удалить объект из массива pCar[i].
void Delete(object obj, EventArgs e)
        {
            pCar[i].RemoveRange(0, n);
            Update();
            Invalidate();
        }

Решение задачи: «Существует ли библиотечная функция удаления элемента из массива»

textual
Листинг программы
class Cars : Form
    {
        public ArrayList aL;
        public int n, c; // кол-во машин
        //Image PetrolSt;
 
        public void HandlerEv() // Обработчик события ev
        {
            Console.WriteLine(" HandlerEv");
            Invalidate();
        }
 
 
        public Cars()
        {
            //PetrolSt = Image.FromFile("image/petrol.jpg");
            n = 2;
            this.DoubleBuffered = true;
            aL = new ArrayList(n);
            for (int i = 0; i < aL.Capacity; i++)
            {
                if (i % 2 == 1)
                {
                    Car c = new Car(i, "Машина", 165, 330, true);
                    c.ev += new delEv(HandlerEv);
                    aL.Add(c);
                }
                else
                {
                    Car c = new Car(i, "Машина", 312, 96, false);
                    c.ev += new delEv(HandlerEv);
                    aL.Add(c);
                }
            }
            Text = "Cars";
            Start();
        }
        //-------------
        public void Start()          // Стартовать
        {
            for (int i = 0; i < aL.Count; i++)
            {
                (aL[i] as Car).Start();
            }
        }
        public void Suspend()     // Возобновить
        {
            for (int i = 0; i < aL.Count; i++)
            {
                (aL[i] as Car).Suspend();
            }
        }
        //---------------
        public void Resume()      // Приостановить
        {
            for (int i = 0; i < aL.Count; i++)
            {
                (aL[i] as Car).Resume();
            }
        }
 
        //--------------
 
        /* void HandlerEv()
         {
             Invalidate();
         }*/
 
        protected override void OnPaint(PaintEventArgs e) //рисование
        {
 
            e.Graphics.DrawEllipse(new Pen(Color.Black, 40), 20, 20, 320, 320);
            e.Graphics.DrawEllipse(new Pen(Color.Black, 40), 65, 65, 230, 230);
            e.Graphics.FillRectangle(new SolidBrush(Color.Brown), 370, 100, 70, 170);
            for (int i = 0; i < aL.Count; i++)
            {
                //рисование машины
                e.Graphics.DrawRectangle(new Pen(Color.Red, 4), (aL[i] as Car).X, (aL[i] as Car).Y, 20, 20);
                //e.Graphics.DrawRectangle(new Pen(Color.Green, 4), pCar[i].X, pCar[i].Y, 20, 20);
                e.Graphics.DrawString((aL[i] as Car).N.ToString(), Font, new SolidBrush(Color.Blue), (aL[i] as Car).X + 4, (aL[i] as Car).Y + 4);
                //e.Graphics.DrawRectangle(new Pen(Color.Blue, 4), pCar[i].X, pCar[i].Y, 20, 20);
            }
        }
        protected override void OnClosed(EventArgs e) //закрытие
        {
            //for (int i = 0; i < aL.Count; i++) 
            // aL[i].Finish();
 
        }
    }
 
    class User : Cars                  // Класс пользователя машин
    {
        private bool run;
        public int i;
        Form pChildForm, Interface;
        Button pBut, pBut2, pBut3;
        TextBox Text0;
        private int rzm = 10;
 
        public User()
        {
            run = true;
            //---------------           
            pBut = new Button();
            pBut.Location = new Point(32, 24);
            pBut.Name = "pBut";
            pBut.Size = new System.Drawing.Size(120, 30);
            pBut.Text = "Suspend/Resume";
            pBut.Click += new EventHandler(OnBut);
            //---------------
            pBut2 = new Button();
            pBut2.Location = new Point(120, 24);
            pBut2.Name = "pBut";
            pBut2.Size = new System.Drawing.Size(120, 30);
            pBut2.Text = "Delete";
            pBut2.Click += new EventHandler(Delete);
            //---------------
            pBut3 = new Button();
            pBut3.Location = new Point(210, 24);
            pBut3.Name = "pBut";
            pBut3.Size = new System.Drawing.Size(120, 30);
            pBut3.Text = "Add a car";
            pBut3.Click += new EventHandler(Add);
            ClientSize = new System.Drawing.Size(200, 150);
            //---------------
            pChildForm = new Form();
            pChildForm.Location = new Point(500, 500);
            pChildForm.Size = new Size(800, 450);
            pChildForm.Text = "User";
            pChildForm.Show();
            pChildForm.Controls.Add(pBut);
            pChildForm.Controls.Add(pBut2);
            pChildForm.Controls.Add(pBut3);
            Text0 = new TextBox();
            Text0.Location = new Point(200, 60);
            Text0.Name = "T0";
            Text0.Size = new System.Drawing.Size(80, 20);
            pChildForm.ClientSize = new System.Drawing.Size(350, 100);
            pChildForm.Controls.Add(Text0);
            //-----------------Interface--------------
            Interface = new Form(); // Создать дочернее окно (форму)
            Interface.Location = new Point(700, 100);// и разместить его.
            Interface.Size = new Size(600, 600); // Определить раз-мер
            Interface.Text = "Interface"; // Задать заголовок дочернего окна
            Interface.Show(); // Показать дочернее окно 
            Interface.ClientSize = new System.Drawing.Size(500, 250);
            Interface.Paint += new PaintEventHandler(Interface_Paint);
        }
        //------------------------------
        void Interface_Paint(object sender, PaintEventArgs e)
        {
            for (int i = 0; i < aL.Count; i++)
            {
                Car car = (Car)aL[i];
                e.Graphics.DrawString("Машина №" + i,
                new System.Drawing.Font("Arial", 10),
                new SolidBrush(Color.Red),
                new Point(rzm, 100));
                Interface.Update();
                if (run)
                {
                    e.Graphics.DrawString("Машина запущена",
                    new System.Drawing.Font("Arial", 8),
                    new SolidBrush(Color.Red),
                    new Point(rzm, 60));
                    rzm = rzm + 130;
                    Interface.Update();
                }
                else
                {
                    e.Graphics.DrawString("Машина остановлена",
                    new System.Drawing.Font("Arial", 8),
                    new SolidBrush(Color.Red),
                    new Point(rzm, 60));
                    rzm = rzm + 130;
                    Interface.Update();
                }
            }
        }
        private void HandlerE() // Обработать событие
        {
            rzm = 10;
            Interface.Invalidate();
        }
 
        //---------------
        void OnBut(object obj, EventArgs e) // Обработчик кнопки
        {
            Console.WriteLine("OkMouse");
            if (run)
            {
                run = false;
                Suspend();
            }
            else
                if (!run)
                {
                    run = true;
                    Resume();
                }
        }
        //---------------
        void Add(object obj, EventArgs e)
        {
            Random rand = new Random();
            for (int i = 0; i < Convert.ToInt32(Text0.Text); i++)
            {
                if (rand.Next(10) % 2 == 1)
                {
                    Car c = new Car(i, "Машина", 165, 330, true);
                    c.ev += new delEv(HandlerEv);
                    (aL[i] as Car).Start();
                    aL.Add(c);
                }
                else
                {
                    Car c = new Car(i, "Машина", 312, 96, false);
                    c.ev += new delEv(HandlerEv);
                    (aL[i] as Car).Start();
                    aL.Add(c);
                }
            }
            Update();
            rzm = 10;
            Interface.Invalidate();
            //i++;
        }
 
        void Delete(object obj, EventArgs e)
        {
            for (int i = 0; i < Convert.ToInt32(Text0.Text); i++)
            {
                if (aL.Count != 0)
                {
                    aL.RemoveAt(aL.Count - 1);
                    Update();
                    rzm = 10;
                    Interface.Invalidate();
                    //i--;
                }
            }
        }
        //---------------
        static void Main() //самая главная функция 
        {
            Cars aL = new Cars();
            Application.Run(new User());
            //for (int i = 0; i < aL.Count; i++) // Завершить потоки 
            //aL[i].Finish();
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.667 из 5
Похожие ответы