0 / 0 / 2
Регистрация: 16.10.2012
Сообщений: 91
1

Как написать удаление по индексу?

11.11.2013, 09:42. Показов 1010. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как переделать это удаление, в удаление по индексу?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
   public void RemoveAt(Animals value)//Удаление элемента по индексу
        {
            Size--;
            int temp = 0;
            Point[] NewList = new Point[Size];
            for (int i = 0, j = 0; i < sorList.Length; i++)
            {
                if (sorList[i].value != value)
                {
                    NewList[j] = sorList[i];
                    j++;
                }
                else
                {
                    if (temp != 0)//проверка вхождения
                    {
                        NewList[j] = sorList[i];
                        j++;
                    }
                    temp++;
                }
            }
            Console.WriteLine();
            Console.WriteLine("Элемент удален");
        }
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2013, 09:42
Ответы с готовыми решениями:

Удаление элемента из списка по индексу.
Надо удалить элемент из списка с индексом 1. using System; using System.Collections.Generic;...

Удаление элемента из List по индексу
Здравствуйте, скажите, а можно ли удалить 1 элемент из List, имеющий номер N? Например, вот мой...

При создании двухсвязного списка не удается реализовать удаление по индексу
Добрый день. Столкнулась с небольшой проблемой. При создании двухсвязного списка не удается...

Как правильно написать выборку по индексу?
подскажите как правильно написать выборку по индексу вот индекс index...

2
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
11.11.2013, 11:40 2
Скинь код полностью. Я догадываюсь как, но смотрю на код, и кое-что не сходится. По идее всё просто, что проще некуда.

Добавлено через 3 минуты
Создаётся массив Point, в коде идёт сравнение с другим массивом, но там сравнивается тип Animals. Animals наследником от Point быть не может. Что-то непонятное у тебя в коде вообще происходит.
0
0 / 0 / 2
Регистрация: 16.10.2012
Сообщений: 91
12.11.2013, 12:49  [ТС] 3
Casper-SC, вот код, есть еще классы Animals, от которого наследуются Birds, Mammals, Artiodactyls/
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
using ConsoleApplication1;
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace lab_14_1
{
    class Point : ICloneable
    {
        public string key;
        public Animals value;
        public Point next;
 
        public Point(string s, Animals a)
        {
            key = s;
            value = a;//key.GetHashCode();
            next = null;
        }
        public override string ToString()
        {
            return key + ":" + value.ToString();
        }
        public override int GetHashCode()
        {
            return key.GetHashCode();
        }
        public Point ShallowCopy() //поверхностное копирование
        {
            return (Point)this.MemberwiseClone();
        }
        public object Clone()
        {
            return new Point("Клон" + this.key, this.value);
        }
    
    }
    class MySortedList//: IDictionary,ICollection,IEnumerable,ICloneable
    {
        ArrayList animList = new ArrayList();
        public static Animals[] animArr = new Animals[9];
        static Random r = new Random();
     
        public Point[] sorList;
        public int Size;
 
        public MySortedList()//создает пустую коллекцию с заранее определенной начальной емкостью
        {
            Size = 9;
            sorList = new Point[9];
        }
        public MySortedList(int capacity)//создает пустую коллекцию с начальной емкостью, заданной параметром capacity
        {
            Size = capacity;
            sorList = new Point[capacity];
        }
        public MySortedList(MySortedList c)//создает очередь, которая инициализируется элементами и емкостью коллекции, заданной параметром с
        {
            Size = c.Size;
            sorList = c.sorList;
        }
        public void Init(int Length)
        {
           // Random rnd = new Random();
           Animals[] tempArray = new Animals[100];
           animList[0] = new Mammals("Кошка", "Муська", 3, "Хищные");
           animList[1] = new Mammals("Дельфин", "Лори", 80, "Китообразные");
           animList[2] = new Mammals("Тушканчик", "Туня", 0.1, "Грызуны");
           animList[3] = new Artiodactyls("Лошадь", "Стрела", 90, false);
           animList[4] = new Artiodactyls("Корова", "Ночка", 100, true);
           animList[5] = new Artiodactyls("Олень", "Иммануил", 150, true);
           animList[6] = new Birds("Орел", "Боря", 2, 100);
           animList[7] = new Birds("Синица", "Синька", 0.3, 40);
           animList[8] = new Birds("Ворон", "Дрон", 2, 50);
          // tempArray[0] = new Mammals("Кошка", "Муська", 3, "Хищные");
           //tempArray[1] = new Mammals("Дельфин", "Лори", 80, "Китообразные");
           //tempArray[2] = new Mammals("Тушканчик", "Туня", 0.1, "Грызуны");
           //tempArray[3] = new Artiodactyls("Лошадь", "Стрела", 90, false);
           //tempArray[4] = new Artiodactyls("Корова", "Ночка", 100, true);
           //tempArray[5] = new Artiodactyls("Олень", "Иммануил", 150, true);
           //tempArray[6] = new Birds("Орел", "Боря", 2, 100);
           //tempArray[7] = new Birds("Синица", "Синька", 0.3, 40);
           //tempArray[8] = new Birds("Ворон", "Дрон", 2, 50);
         
            //for (int i = 0; i < Length; i++)
            //{
            //    sorList[i] = new Point(tempArray[r.Next(7)].Name, tempArray[r.Next(9)]);
          
            //}        
           for (int i = 0; i < Length; i++)
           {
               animList[i] = new Point(tempArray[r.Next(7)].Name, tempArray[r.Next(9)]);
               animList.Sort();
           }        
        }
        public void Keys()//получаем коллекцию ключей
        {
            Console.WriteLine();
            Console.WriteLine("Коллекция ключей: ");
            ArrayList list = new ArrayList();
            for (int i = 0; i < sorList.Length; i++)
                list.Insert(list.Count, sorList[i].key);
            for (int i = 0; i < list.Count; i++)
                Console.Write(list[i].ToString() + ", ");
        }
        public void Values()//получаем коллекцию значений
        {
            Console.WriteLine();
            Console.WriteLine("Коллекция значений:");
            ArrayList list = new ArrayList();
            for (int i = 0; i < sorList.Length; i++)
                list.Insert(list.Count, sorList[i].value);
            for (int i = 0; i < list.Count; i++)
                Console.Write(list[i].ToString() + "\n");
        }
        public bool ContainsKey(object key)//Возвращает true , если в вызывающей коллекции содержится ключ, заданный параметром.
        {
            int temp = 0;
            for (int i = 0; i < sorList.Length; i++)
                if (key == sorList[i].key)
                    temp++;
            if (temp == 0)
                return false;
            else return true;
 
        }
        public bool ContainsValue(Animals value)//Возвращает true , если в вызывающей  коллекции содержится значение, заданное параметром.
        {
            int temp = 0;
            for (int i = 0; i < sorList.Length; i++)
                if (value == sorList[i].value)
                    temp++;
            if (temp == 0)
                return false;
            else return true;
        }
        public void Add(string key, Animals value)//Добавление элемента в конец коллекции
        {
            Size++;
            Point[] NewList = new Point[Size];
            for (int i = 0; i < sorList.Length; i++)
                NewList[i] = sorList[i];
            Point p = new Point(key, value);
            NewList[Size - 1] = p;
            sorList = NewList;
            Console.WriteLine("Элемент добавлен");
        }
       
 
        public void Remove(Animals value)//Удаление первого вхождения заданного элемента в массив
        {
            Size--;
            int temp = 0;
            Point[] NewList = new Point[Size];
            for (int i = 0, j = 0; i < sorList.Length; i++)
            {
                if (sorList[i].value != value)
                {
                    NewList[j] = sorList[i];
                    j++;
                }
                else
                {
                    if (temp != 0)//проверка вхождения
                    {
                        NewList[j] = sorList[i];
                        j++;
                    }
                    temp++;
                }
            }
            Console.WriteLine();
            Console.WriteLine("Элемент удален");
        }
 
        public void RemoveAt(ref int[] data, int delIndex)
        {
            int[] newList = new int[data.Length - 1];
            for (int i = 0; i < delIndex; i++)
            {
                newList[i] = data[i];
            }
            for (int i = delIndex; i < newList.Length; i++)
            {
                newList[i] = data[i + 1];
            }
            data = newList;
            Console.WriteLine();
            Console.WriteLine("Элемент с индексом {0} удален", delIndex);
        }
        public void Print()
        {
            if (sorList == null) 
            {
                Console.WriteLine("Список пуст!");
                return;
            }
            for (int i = 0; i < Size; i++)
            {
                
                if (sorList[i] == null) Console.WriteLine(i +  "\n ");
                else
                {
                    Console.Write(i + " ");
                    Point p = sorList[i];
                    while (p != null)
                    {
                        Console.Write(p.ToString() + "\t");
                        p = p.next;
                    }
                    Console.WriteLine();
                }
            }
        }
    }
}
0
12.11.2013, 12:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2013, 12:49
Помогаю со студенческими работами здесь

Удаление из вектора по индексу
Добрий день, нуждаюсь в консультации. Пишу метод удаления из вектора по индексу, но наткнулся...

Удаление числа в массиве по индексу
Программа удаляет элемент массива по индексу, ну должна удалять,но ничего не выходит, посмотрите...

Удаление строки из таблицы по индексу
Здравствуйте! есть таблица с тремя полями. Поле id сделал специально, для того, чтоб удалять...

Удаление элементов массива по индексу
Здравствуйте. Подскажите пожалуйста как удалить элемент из массива по заданному индексу и вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru