Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2012, 23:19   #11
DerFluch
 
Регистрация: 17.11.2012
Сообщений: 6
По умолчанию

ну по фамилии и имени например
DerFluch вне форума Ответить с цитированием
Старый 17.11.2012, 23:24   #12
DerFluch
 
Регистрация: 17.11.2012
Сообщений: 6
По умолчанию

получится что то вроде:
Иванов Виталий
Иванов Иван
Петров Алексей
Петров Сергей
Петров Юрий
DerFluch вне форума Ответить с цитированием
Старый 18.11.2012, 00:00   #13
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Понял наконец)
Вобщем, вам поможет GroupBy в связке с OrderBy. Ваши поля можно получать по их, скажем, номеру (Id). Я вам набросал пример как это можно сделать:
Код:
 private class Entry
        {
            public string Name;
            public DateTime Date;
            public int Number;

            public object this[int keyId]
            {
                get
                {
                    if (keyId == 0)
                        return Name;
                    else if (keyId == 1)
                        return Date;
                    else 
                        return Number;
                }
            }

            public override string ToString()
            {
                return Name + ", " + Date + ", " + Number;
            }
        }

        static void Main(string[] args)
        {
            var arr = new[]
                          {
                              new Entry { Date = new DateTime(2012,10,30), Name = "111", Number = 1},
                              new Entry { Date = new DateTime(2012,11,10), Name = "1112", Number = 2},
                              new Entry { Date = new DateTime(2012,10,10), Name = "1112", Number = 1},
                              new Entry { Date = new DateTime(2012,10,10), Name = "2", Number = 1},
                              new Entry { Date = new DateTime(2012,10,30), Name = "2", Number = 3},
                              new Entry { Date = new DateTime(2012,11,10), Name = "2", Number = 2},
                          };
            var primaryKeyId = 1;
            var secondaryKeyId = 0;
            var r = arr.OrderBy(x => x[primaryKeyId]).GroupBy(x => x[primaryKeyId]);
            foreach (var group in r)
            {
                foreach (var e in group.OrderBy(x => x[secondaryKeyId]))
                {
                    Console.WriteLine(e);
                }
            }
            Console.ReadKey();
        }
Можете варьировать primaryKeyId и secondaryKeyId - это, скажем, первый проход сортировки и второй. Что соответствует чему посмотрите в индексаторе Entry. Вы их как раз будете задавать как номера выбранных пользователем полей для сортировки.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
count по двум полям _SERGEYX_ БД в Delphi 3 05.06.2012 17:44
фильтр по двум полям Alex003 Помощь студентам 2 03.12.2011 11:39
поиск по двум полям denisov PHP 4 23.04.2010 21:50
Отбор по двум полям MPa БД в Delphi 4 06.02.2008 20:14
Фильтрация по двум полям Dunkas БД в Delphi 11 21.01.2008 23:59