Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Можно ли на Linq2Objects сделать такое / 9 сообщений из 9, страница 1 из 1
10.11.2014, 17:49
    #38801175
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
Есть класс
Код: c#
1.
2.
3.
4.
5.
6.
class Record
{
   int ID,
   int ParkingID
   ....
}



есть List<Record>

Мне надо пересортировать список так, чтобы, к примеру, все записи с ParkingID == 3 были первыми
...
Рейтинг: 0 / 0
10.11.2014, 18:14
    #38801204
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
tual,

Код: 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.
class Program
{
    private static void Main()
    {
        var records = new List<Record>
        {
            new Record {ID = 1, ParkingID = 5},
            new Record {ID = 7, ParkingID = 6},
            new Record {ID = 4, ParkingID = 3},
            new Record {ID = 3, ParkingID = 2},
            new Record {ID = 2, ParkingID = 3},
            new Record {ID = 8, ParkingID = 4},
            new Record {ID = 6, ParkingID = 7},
            new Record {ID = 5, ParkingID = 1}
        };

        records.Sort((x, y) =>
        {
            if (y.ParkingID == 3) return 1;
            if (x.ParkingID == 3) return -1;

            return x.ID.CompareTo(y.ID);
        });

        foreach (Record record in records)
        {
            Console.WriteLine("ID: {0}, ParkingID: {1}", record.ID, record.ParkingID);
        }

        Console.ReadKey();
    }
}
...
Рейтинг: 0 / 0
10.11.2014, 18:27
    #38801227
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
Код: c#
1.
items.OrderBy(item => item.ParkingID == 3 ? 0 : 1)
...
Рейтинг: 0 / 0
10.11.2014, 18:31
    #38801233
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
Алексей К, зачем цеплять Linq, когда List<T> поддерживает сортировку?

Ну и OrderBy не сортирует сам список, а "надо пересортировать список так, чтобы, к примеру, все записи с ParkingID == 3 были первыми".
...
Рейтинг: 0 / 0
10.11.2014, 18:48
    #38801254
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
спасибо, значит компарера по интам достаточно
...
Рейтинг: 0 / 0
10.11.2014, 19:25
    #38801271
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
tualспасибо, значит компарера по интам достаточноНу да, можно IComparer<Record> реализовать, можно метод статический, а можно как я написал выше.
...
Рейтинг: 0 / 0
11.11.2014, 05:42
    #38801459
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
skyANAАлексей К, зачем цеплять Linq, когда List<T> поддерживает сортировку?

Ну и OrderBy не сортирует сам список, а "надо пересортировать список так, чтобы, к примеру, все записи с ParkingID == 3 были первыми".Вопрос про Linq2Objects. :-)
Код: c#
1.
2.
List<Record> items = new ...
items = items.OrderBy(item => item.ParkingID == 3 ? 0 : 1).ToList();
...
Рейтинг: 0 / 0
20.11.2014, 12:36
    #38811723
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
Алексей К
Код: c#
1.
items.OrderBy(item => item.ParkingID == 3 ? 0 : 1)




Извращусь

var desired_id = 3;

items.OrderBy(item => Math.Max(item.ParkingID - desired_id,-(item.ParkingID - desired_id) )
...
Рейтинг: 0 / 0
20.11.2014, 12:37
    #38811727
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли на Linq2Objects сделать такое
Код: c#
1.
items.OrderBy(item => Math.Max(item.ParkingID - desired_id,-(item.ParkingID - desired_id)))
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Можно ли на Linq2Objects сделать такое / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]