Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
1

List это Listbox ?

12.09.2013, 14:19. Показов 1561. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет ребята, дали задание создать прогу со списком использовать (List) а list и listbox не одно и то же ?) я как понял list просто тип ? я прав или нет ?? подскажите пжлста)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2013, 14:19
Ответы с готовыми решениями:

Отображение в listBox поля элемента из коллекции коллекций List<List<>>
Есть карта в pictureBox-е. На ней мышкой ставяться флажки(маркеры). Нужно хранить их в БД с...

List<T> и listbox
Доброго времени, есть задача: Список содержит некоторые сведения о медицинском осмотре...

Не отображаются элементы ListBox из List<T>
namespace trymatrixes { public partial class RSSList : Form { public...

Сохранить элементы из listBox в List<>
У меня есть код listBox2.Items.Clear(); var name = textBox11.Text; var...

15
64 / 63 / 7
Регистрация: 19.03.2013
Сообщений: 207
12.09.2013, 14:21 2
поиск в гугл первая ссылка вот
1
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
12.09.2013, 16:00  [ТС] 3
а как создать список ФИО и сортировать их по имени ?

Добавлено через 18 минут
я просто не догоняю как отсортировать
List с содержанием:

Иванов Иван Иванович
Иванов Петр Иванович

как тут сортировать по имени ?.. помогите разобраться )
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
12.09.2013, 16:04 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
class ByName : IComparer<Person>
{
    public int Compare(Person x, Person y)
    {
        return x.Name.CompareTo(y.Name);
    }
}
 
 
List<Student> students = new List<Student>();
// ..
students.Sort(new ByName());
1
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
12.09.2013, 16:25  [ТС] 5
прошу не пинать сильно но я нуб))
как создавать list так чтобы можно было из кнопки добавлять туда новые

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.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
 
namespace WindowsFormsApplication1
{
 
 
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
        }
 
 
 
 
 
 private void Form1_Load(object sender, EventArgs e)
        {
 
            var list = new List<string>();
            list.Add("Петров Петр Николаевич");
            list.Add("Иванов Иван Николаевич");
            list.Add("Хамзин Алмаз Николаевич");
            list.Add("Ахатов Шакур Николаевич");
            // Сортируем с помощью LINQ.
            var sortedList = list.OrderBy(x => x);
 
            foreach (var value in sortedList)
            {
                listBox1.Items.Add(value);
            }
        }
 
 
 private void button1_Click(object sender, EventArgs e)
        {
            var sortedList = list.OrderBy(x => x); // ГОВОРИТ ЧТО НЕТ
 
            foreach (var value in sortedList)
            {
                listBox1.Items.Add(value);
            }
        }
    }
}
0
64 / 63 / 7
Регистрация: 19.03.2013
Сообщений: 207
12.09.2013, 16:31 6
ну так ясное дело ты объявил переменную list как локальную и хочешь использовать ее в другой функции
1
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
12.09.2013, 16:41  [ТС] 7
Цитата Сообщение от Петррр Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
class ByName : IComparer<Person>
{
    public int Compare(Person x, Person y)
    {
        return x.Name.CompareTo(y.Name);
    }
}
 
 
List<Student> students = new List<Student>();
// ..
students.Sort(new ByName());
ругает person че я не подключил или что не та ??)
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
12.09.2013, 16:57 8
Я там опечатался. Ну да фиг с ним. Вообще я предполагал, что у вас существует класс, который содержит свойства для фамилии, имени и отчества (class Person). Список имеет перегруженный метод который позволяет передать ему компаратор. Как раз я вам и привел пример компаратора. Все остальное вы должны сделать сами.
1
64 / 63 / 7
Регистрация: 19.03.2013
Сообщений: 207
12.09.2013, 17:02 9
а зачем ему делать свой класс, ведь в списках есть метод Sort, думаю этого ему будет достаточно
0
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
12.09.2013, 17:06  [ТС] 10
Цитата Сообщение от Rust511 Посмотреть сообщение
а зачем ему делать свой класс, ведь в списках есть метод Sort, думаю этого ему будет достаточно
sort есть , но мне нужно именно сортировать по имени а не по фамилии

массив:

Абрамов Николай Иванушка
Барабанов Бубак Бубакович
...............
...............

надочтобы после сортировки стало:
Барабанов Бубак Бубакович
Абрамов Николай Иванушка


не могу с этим разобраться (
0
64 / 63 / 7
Регистрация: 19.03.2013
Сообщений: 207
12.09.2013, 17:30 11
аа, я дурак, простите=)
ну тут либо как сказал товарищ Петррр, либо схитрить и записывать в список не Абрамов Николай, а Николай Абрамов и т.д. ^^
0
159 / 98 / 25
Регистрация: 07.03.2013
Сообщений: 513
Записей в блоге: 1
12.09.2013, 17:34 12
Цитата Сообщение от kaspersky Посмотреть сообщение
sort есть , но мне нужно именно сортировать по имени а не по фамилии

(
Я не знаю C#, но как я понял List это дженерик, т.е. его элементом может быть любой тип. Если это так то сделай следующее:
1) Создаешь структуру с полями: 1) модиф. строка, 2) исходн строка
2) Для каждой строки отыскиваешь первый пробел. Следующая за ним позиция - это имя. В поле "исходн строка" помещаешь исходную строку, в поле "модиф. строка" помещаешь усеченную строку, т.е. ИмяОтчество
3) Сортируешь полученный список по полю "модиф. строка"одним из известных методов (пузырек, вставка ...)
4) Отображаешь пользователю данные из "исходн строка".
Могу набросать пример на Lazarus
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
12.09.2013, 17:44 13
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
using System;
using System.Collections.Generic;
 
class ByName : IComparer<string>
{
    public int Compare(string s1, string s2)
    {
        string[] e1 = s1.Split(' ');
        string[] e2 = s2.Split(' ');
        if (e1.Length != e2.Length && e2.Length != 3)
            throw new FormatException();
        return e1[1].CompareTo(e2[1]);
    }
}
 
class Program
{
    static void Main(string[] args)
    {
        List<string> persons = new List<string> {
            "Абрамов Николай Иванушка",
            "Барабанов Бубак Бубакович"
        };
        persons.Sort(new ByName());
        persons.ForEach(Console.WriteLine);
        Console.ReadLine();
    }
}
0
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
12.09.2013, 19:21  [ТС] 14
вот в инете нарыл..
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
Допустим, имеем мы класс:
public class User
    {
        public int id;
        public string name;
    }
 
 
 Создаем список:
List<User> usr = new List<User>();
            //Заполняем список
            User u1 = new User();
            u1.id = 2;
            u1.name = "Ольга";
            usr.Add(u1);
            u1 = new User();
            u1.id = 1;
            u1.name = "Дима";
            usr.Add(u1);
            u1 = new User();
            u1.id = 3;
            u1.name = "Света";
            usr.Add(u1);
 
 
 Теперь чтобы отсортировать его по полю ID надо сделать всего лишь, вот это:
usr.Sort(delegate(User us1, User us2)
            { return us1.id.CompareTo(us2.id); });
Добавлено через 1 минуту
Ребята, благодарю за активную помощь

Добавлено через 26 минут
как в этом случае удалить людей у которых фамилии начинаются на -А
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
 
namespace WindowsFormsApplication1
{
 
  
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
        }
 
        public class User
        {
            public string name;
            public string fir;
            public string o;
        }
 
        List<User> list = new List<User>();
 
        private void Form1_Load(object sender, EventArgs e)
        {
       User u1 = new User();
       u1.fir = "Авзалов";
       u1.name = "Ильнар";
       u1.o = "Даниярович";
       list.Add(u1);
     u1 = new User();
       u1.fir = "Абрамов";
       u1.name = "Рафис";
       u1.o = "Римович";
       list.Add(u1);
       u1 = new User();
       u1.fir = "Багманов";
       u1.name = "Аглям";
       u1.o = "Фанисович";
       list.Add(u1);
       u1 = new User();
       u1.fir = "Багманов";
       u1.name = "Авлям";
       u1.o = "Фанисович";
       list.Add(u1);
       foreach (User b in list)
       {
           richTextBox1.Text = richTextBox1.Text + b.fir.ToString() + " " + b.name + " " + b.o + "\n";
       }
            
       
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            list.Sort(delegate(User us1, User us2)
            { return us1.name.CompareTo(us2.name); });
 
 
      
            foreach (User b in list)
            {
                richTextBox1.Text = richTextBox1.Text + b.fir.ToString() + " " + b.name +" " + b.o + "\n";
            }
        }
 
 
 
        private void button2_Click(object sender, EventArgs e)
        {
 
            
            
          
        }
 
 
 
    
 
      
    }
}
Добавлено через 12 минут
как удалить ребята?)

Добавлено через 53 минуты
удалил так, может и тупо но я новичок в Си
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
    private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            List<User> list2 = new List<User>();    
            
            
            foreach (User b in list)
            {
 
                if (Convert.ToString(b.fir[0]) != "А")
                {
                    User u1 = new User();
                    u1.fir = b.fir;
                    u1.name = b.name;
                    u1.o = b.o;
                    list2.Add(u1);
 
                           }
                 //   MessageBox.Show(Convert.ToString(b.fir[0]));
 
 
            }
            list = list2;
            foreach (User b in list)
            {
                richTextBox1.Text = richTextBox1.Text + b.fir + " " + b.name + " " + b.o + "\n";
            }
        }
Добавлено через 1 минуту
Может кто подскажет как в List поменять местами первую строку с последним ?
0
HolyMoon
12.09.2013, 19:39 15
C#
1
2
3
4
5
string tmp_str;
List<string> list = ваш лист;
tmp_str = list[0];
list[0] = list.[list.length-1];
list.[list.length-1] = tmp_str;
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
12.09.2013, 20:33  [ТС] 16
Цитата Сообщение от HolyMoon Посмотреть сообщение
C#
1
2
3
4
5
string tmp_str;
List<string> list = ваш лист;
tmp_str = list[0];
list[0] = list.[list.length-1];
list.[list.length-1] = tmp_str;
пишет требуется идентификатор ((

Добавлено через 16 минут
HolyMoon спасибо за пример) вот рабочий под мой код)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void button3_Click(object sender, EventArgs e)
        {
       
            richTextBox1.Clear();
            list.Add(list[0]);
            list[0] = list[list.Count-2];
 
            list[list.Count - 2] = list[list.Count - 1];
            list.RemoveAt(list.Count - 1);
 
            foreach (User b in list)
            {
                richTextBox1.Text = richTextBox1.Text + b.fir + " " + b.name + " " + b.o + "\n";
            }
     
 
 
        }
Добавлено через 31 минуту
а как думаете продвинутый программист сказал бы что я написал чушь ??)
про замену 1 с последним .
0
12.09.2013, 20:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2013, 20:33
Помогаю со студенческими работами здесь

Неверный вывод List в ListBox
Добрый день. Проблема заключается в том, что при выводе значений элементов из list в listbox в...

Передача коллекции объектов list в listbox
Добрый день! Я новичок и мне бы хотелось получить помощь! Заранее спасибо! Я хочу написать...

Удалить элемент из List<string> и из listBox
Здравствуйте. Как можно удалить элемент из List&lt;string&gt; и из ListBox чтобы не остовалось пустых...

Как перенести все значения ListBox в List
Не подскажете как перенести все значения ListBox в List? List&lt;string&gt; liststr = new...


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

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