Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46

перегрузка опрератора

13.09.2013, 21:01. Показов 2019. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте)
Можно ли перегрузить оператор foreach так чтоб доступ к елементам коллекции происходил через один?
Если нельзя то как реализовать это по-другому?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2013, 21:01
Ответы с готовыми решениями:

перегрузка опрератора <<
Помогите разобраться в коде. Весь день промучался, так и не нашел ошибку. Компилятор - VC++ 2008 - выдает ошибку компиляции, указывая на...

как реализовать перегрузку опрератора "="?
есть класс Base: class Base { private: ... //переменные public: Base(...); //конструктор ...

Перегрузка в виде метода VS Перегрузка в виде функции друг
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде функции друг? Добавлено через 4...

22
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
14.09.2013, 13:50  [ТС]
Студворк — интернет-сервис помощи студентам
По заданию нужно использовать Hashset, нужно чтоб а grid выводились элементы коллекции через один. Для этого сказали использовать переопределение MoveNext, GetEnumerator.
Если так нельзя,как это вообще реализовать?

Добавлено через 14 минут
Цитата Сообщение от Psilon Посмотреть сообщение
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
 public class EvenElements<T> : IList<T>
    {
        private readonly List<T> _list = new List<T>();
 
        public IEnumerator<T> GetEnumerator()
        {
            bool isReturned = true;
            foreach (T var in _list)
            {
                if (isReturned)
                    yield return  var;
                isReturned = !isReturned;
            }
 
        }
 
        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
 
        public void Add(T item)
        {
            throw new NotImplementedException();
        }
 
        public void Clear()
        {
            throw new NotImplementedException();
        }
 
        public bool Contains(T item)
        {
            throw new NotImplementedException();
        }
 
        public void CopyTo(T[] array, int arrayIndex)
        {
            throw new NotImplementedException();
        }
 
        public bool Remove(T item)
        {
            throw new NotImplementedException();
        }
 
        public int Count { get; private set; }
        public bool IsReadOnly { get; private set; }
        public int IndexOf(T item)
        {
            throw new NotImplementedException();
        }
 
        public void Insert(int index, T item)
        {
            throw new NotImplementedException();
        }
 
        public void RemoveAt(int index)
        {
            throw new NotImplementedException();
        }
 
        public T this[int index]
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
    }
ну и так далее
А потом какойто лист надо передавать в функцию ShowinGrid в форич, что туда передавать?
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
 private void showListInGrid()
        {
            dataGridView1.Rows.Clear();
            
            foreach (Kniga kniga in knigaset)
            {
                DataGridViewRow row = new DataGridViewRow();
                DataGridViewTextBoxCell cell1 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell2 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell3 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell4 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell5 = new
                DataGridViewTextBoxCell();
               
                cell1.ValueType = typeof(string);
                cell1.Value = kniga.getNazvanie_knigi();
               cell2.ValueType = typeof(int);
               cell2.Value = kniga.getCol_str();
                cell3.ValueType = typeof(DateTime);
                cell3.Value = kniga.getData_vipuska();
                cell4.ValueType = typeof(float);
                cell4.Value = kniga.getCena();
                cell5.ValueType = typeof(bool);
                cell5.Value = kniga.getEl_ver();
                row.Cells.Add(cell1);
                row.Cells.Add(cell2);
                row.Cells.Add(cell3);
                row.Cells.Add(cell4);
                row.Cells.Add(cell5);
                dataGridView1.Rows.Add(row);
            }
        }
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.09.2013, 14:04
на самом деле достаточно сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public static class ListHelper
    {
        public static IEnumerable<T> GetEvens<T>(this List<T> list)
        {
            bool isReturned = true;
            foreach (T var in list)
            {
                if (isReturned)
                    yield return var;
                isReturned = !isReturned;
            }
        }
 
        public static IEnumerable<T> GetOdds<T>(this List<T> list)
        {
            return list.Except(list.GetEvens());
        }
    }
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
14.09.2013, 18:43  [ТС]
C#
1
2
3
4
5
6
private void showListInGrid()
        {
            dataGridView1.Rows.Clear();
            
            foreach (Kniga kniga in knigaset)
            {
что мне передавать вместо knigaset?
C#
1
private readonly List<T> _list = new List<T>(); или создавать такой EvenElements<T>
Добавлено через 6 минут
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
  IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
 
        public void Add(T item)
        {
            throw new NotImplementedException();
        }
 
        public void Clear()
        {
            throw new NotImplementedException();
        }
 
        public bool Contains(T item)
        {
            throw new NotImplementedException();
        }
 
        public void CopyTo(T[] array, int arrayIndex)
        {
            throw new NotImplementedException();
        }
 
        public bool Remove(T item)
        {
            throw new NotImplementedException();
        }
 
        public int Count { get; private set; }
        public bool IsReadOnly { get; private set; }
        public int IndexOf(T item)
        {
            throw new NotImplementedException();
        }
 
        public void Insert(int index, T item)
        {
            throw new NotImplementedException();
        }
 
        public void RemoveAt(int index)
        {
            throw new NotImplementedException();
        }
 
        public T this[int index]
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
    }
а где взять и так далее?

Добавлено через 4 часа 20 минут
Спасибо всем за помощь! Вопрос решен))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2013, 18:43

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

перегрузка []
Есть класс, и почему компилятор выдает ошибку на функции int &amp;operator(int); #ifndef ARRAY1_H #define ARRAY1_H #include...

Перегрузка.
Всем привет. Вот, попросили помочь, кому не сложно. Сам код: #ifndef OTREZOK_H #define OTREZOK_H #include &lt;iostream&gt;...

перегрузка
помогите сделать перегрузку пожалуйста... static public void Method2() { const byte m = 5, n = 7; ...

Перегрузка new
Дайте примеры на перегрузку. #define n ... // Некая целая константа class a { ... }; // Некий класс a *p=new a; // Здесь должен быть...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru