Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
Neftedollar
13 / 13 / 0
Регистрация: 26.01.2010
Сообщений: 96
1

Distinct-фильтрация по свойствам класса в списке.

30.05.2011, 17:16. Просмотров 5257. Ответов 4
Метки нет (Все метки)

Есть список классов List<class> Spisok
у каждого класса есть неNull свойство.
Как можно сделать фильтрацию( distinct ) по этому свойству класса.
Список очень большой, не хотелось бы пробегать его как можно меньшее кол-во раз.
 Комментарий модератора 
Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 17:16
Ответы с готовыми решениями:

Доступ к свойствам экземпляра класса из другого класса
Здравствуйте! У меня возникла программа с написанием программы на C#. ...

Distinct для списка объектов класса
Ситуация такая: имеется класс public class Item : { public...

Проход по свойствам класса
Здравствуйте! Есть класс и в нем свойства. Как мне пройтись по этим свойствам...

Как реализовать счетчики количества обращений к свойствам класса?
Как реализовать счетчики количества обращений к свойствам класса? На все...

Через рефлексию присвоить одинаковое значение всем свойствам класса
есть, например, класс class Item { public string FIO...

4
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
30.05.2011, 17:50 2
Наверное , имелось в виду "Список очень большой, хотелось бы пробегать его как можно меньшее кол-во раз."
Можно попробовать так (неNull свойтво так и проверяем - !=null):
C#
1
2
3
var query = PcList.Where(item => item.NotNUllField != null);
//далее, можно так например
listBox1.DataSource = query.ToList();
0
Neftedollar
13 / 13 / 0
Регистрация: 26.01.2010
Сообщений: 96
31.05.2011, 00:18  [ТС] 3
Winsor, спасибо видимо не правильно выразился.
Свойства все не null мы это знаем.
Но они могут дублироваться.
И хотелось бы как раз взять из списка классов те классы в которых это свойство уникально.

Вообще класс этот класс был строкой таблицы.
в SQL все было просто довольно таки.

SQL
1
2
SELECT DISTINCT Поле
FROM Таблица.
Но задачу в SQL полноценно у меня решить не получается.
Поэтому пишу на .NET
Т.е. у нас есть
class Строка которые содержатся в List<Строка>
у каждого класса есть свойство которое повторяется
C#
1
2
3
4
class Строка
{
   public string свойство {get; set;}
}
Хотелось бы сделать что-то вроде:

SQL
1
2
SELECT DISTINCT Строка.свойство
FROM List<Строка>
только с помощью Linq
Я не смог разобраться в описании на MSDN
Сейчас я сделал другой способ, но все хочу понять как работает этот Distinct в Linq
0
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
31.05.2011, 12:52 4
C#
1
2
3
4
5
6
7
8
9
            List<MyString> strs = new List<MyString>() 
                                {   new MyString() { MyProperty="test1" },
                                    new MyString() { MyProperty="test2" },
                                    new MyString() { MyProperty="test2" },
                                    new MyString() { MyProperty="test3" }
                                };
            listBox1.DisplayMember = "MyProperty";
            listBox1.DataSource = (from p in strs
                                  select p.MyProperty).Distinct().ToList();
в листбоксе test1,test2,test3. Можно также сделать с помощью IEqualityComparer - но блин лениво его реализовывать... .

Добавлено через 24 секунды
C#
1
2
3
4
        class MyString
        {
            public string MyProperty { get; set; }
        }
1
Neftedollar
13 / 13 / 0
Регистрация: 26.01.2010
Сообщений: 96
31.05.2011, 13:41  [ТС] 5
Спасибо! большое.
Так тоже работает.
0
31.05.2011, 13:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 13:41

Получить доступ к открытым свойствам класса Data из Form1, fun1.
Добрый день. Нужно получить доступ к открытым свойствам класса Data из Form1,...

Поиск из "Массива обьектов класса" по свойствам(имени, дате.)
Всем доброго времени суток. Есть проблема такая, мне нужно например вывести из...

Сортировка элементов класса в списке по полю типа string
Ребята, прошу помощи. 3й день не могу реализовать. Есть список выражений, по...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru