Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.04.2018
Сообщений: 1
1

При выводе коллекции все элементы приравниваются к последнему

01.05.2018, 18:43. Показов 496. Ответов 1

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Windows.Forms;
 
namespace WindowsFormsApp8
{
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }
        Class1 c1 = new Class1();
        private void button1_Click(object sender, EventArgs e)
        {
            string name = "", im = "", ot = "", group = "";
            int o1 = 0, o2 = 0, o3 = 0, o4 = 0, o5 = 0;
            name = textBox1.Text;
            im = textBox2.Text;
            ot = textBox3.Text;
            group = textBox4.Text;
            o1 = Convert.ToInt32(textBox5.Text);
            o2 = Convert.ToInt32(textBox6.Text);
            o3 = Convert.ToInt32(textBox7.Text);
            o4 = Convert.ToInt32(textBox8.Text);
            o5 = Convert.ToInt32(textBox9.Text);
            string str;
            str = c1.Vvod(name, im, ot, group, o1, o2, o3, o4, o5);
            listBox1.Items.Clear();
            for (int i = 0; i < c1.lol; ++i)
            {
                listBox1.Items.Add(str);
            }
        }
    }
}
Класс:
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
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Windows.Forms;
 
namespace WindowsFormsApp8
{
    class Class1
    {
        public class myComparerClass : IComparer<NOTE>
        {
            int IComparer<NOTE>.Compare(NOTE x, NOTE y)
            {
                return (new CaseInsensitiveComparer()).Compare(x.name, y.name);
            }
        }
        public struct NOTE
        {
            public string name;
            public string[] IO;
            public string group;
            public int[] ocenka;
        }
        public static List<NOTE> A = new List<NOTE>();
 
        public int lol;
        public string Vvod (string fam, string im, string ot, string gr, int o1, int o2, int o3, int o4, int o5)
        {
            NOTE nt = new NOTE();
            nt.name = fam;
            nt.IO = new string[2];
            nt.IO[0] = im;
            nt.IO[1] = ot;
            nt.group = gr;
            nt.ocenka = new int[5];
            nt.ocenka[0] = o1;
            nt.ocenka[1] = o2;
            nt.ocenka[2] = o3;
            nt.ocenka[3] = o4;
            nt.ocenka[4] = o5;
            A.Add(nt);
            lol = A.Count;
            string str = "";
            for (int i = 0; i < lol; ++i)
            {
                nt = (NOTE)A[i];
                str = nt.group + " " + "Имя: " + nt.name + " . " + nt.IO[0] + " . " + nt.IO[1] + " " +  nt.ocenka[0] + " " + nt.ocenka[1] + " " + nt.ocenka[2] + " " + nt.ocenka[3] + " " + nt.ocenka[4];
            }
            IComparer<NOTE> myComparer = new myComparerClass();
            A.Sort(myComparer);
            return str;
        }
    }
}
Миниатюры
При выводе коллекции все элементы приравниваются к последнему   При выводе коллекции все элементы приравниваются к последнему  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2018, 18:43
Ответы с готовыми решениями:

Вывести все элементы коллекции на консоль, но при этом чтобы коллекция была в другом классе
Не пойму что не так.Хочу просто вывести все элементы коллекции на консоль, но при этом чтобы...

Удалить все элементы, равные последнему
&quot;Удалить все элементы, равные последнему&quot;. Надо сделать на паскале, а я только в борланде до этого...

Удалить из списка все элементы равные последнему
domains i=integer ii=i* predicates last(i,ii) _del_last(ii,ii,ii) del_last(ii,ii) clauses

Переставить в обратном порядке все четные по значениям элементы массива и выделить их при выводе зеленым цветом
Заполнить одномерный массив из N элементов целыми числами. Переставить в обратном порядке все...

1
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
01.05.2018, 20:41 2
Sfiftea, программа делает ровно то что написано в коде. В строке №32 в Form1.cs получается строка и затем она lol раз ("прекрасное" название переменной, кстати) добавляется в ListBox. На деле же нужно выводить содержимое коллекции Class1.A.

Добавлено через 17 секунд
P.S. Код ужасный
1
01.05.2018, 20:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2018, 20:41
Помогаю со студенческими работами здесь

Найти все повторяющиеся элементы в массиве, предшествующие последнему отрицательному
Ввести одномерный массив A, вывести его. Найти все повторяющиеся элементы в нём, предшествующие...

Сформировать массив, который должен содержать все повторяющиеся элементы, предшествующие последнему отрицательному
Ввести одномерный массив A. Сформировать массив С, который должен содержать все повторяющиеся...

Все элементы, стоящие на нечетных местах и предшествующие последнему по порядку минимуму, умножить на максимум
Задача: Все элементы, стоящие на нечетных местах и предшествующие последнему по порядку минимуму,...

Все элементы коллекции изменяются на свежедобавленный
В коллекцию складываются люди (имя и фамилия). При выполнении команды add(человек) он добавляется,...

Нужно вывести все элементы коллекции
public class Main { public static void main(String args) { ArrayDeque&lt;Auto&gt; queue...

Удалить из списка все элементы, равные последнему; найти длину полученного списка
Помогите реализовать.Создайте список и Удалите из списка все элементы, равные последнему, найдите...


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

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