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

LINQ: Получить список пользователей, у которых есть активная сессия и отсортировать их по рейтингу

28.11.2022, 18:40. Показов 499. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В классе "Extentions" в статичном методе "Task2" прописать решениеданого условия:
Получить список пользователей, у которых есть активная сессия
(токен не равняется null) и отсортировать их по рейтингу (сначала высокий
рейтинг). В случае одинакового рейтинга отсортировать их по имени (в
алфавитном порядке) (FirstName).
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
 
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string basePath ="C:\Users\0arte\RiderProjects\ConsoleApp2"; // enter path to folder with json files in this variable
            
            using var reader = new StreamReader(basePath + "Dataset.json");
            using var taskOneReader = new StreamReader(basePath + "Task1.json");
            using var taskTwoReader = new StreamReader(basePath + "Task2.json");
            using var taskThreeReader = new StreamReader(basePath + "Task3.json");
            using var taskFourReader = new StreamReader(basePath + "Task4.json");
            using var taskFiveReader = new StreamReader(basePath + "Task5.json");
            
            var users = Deserialize<List<User>>(reader);
            
            var task1 = Deserialize<List<string>>(taskOneReader);
            var task2 = Deserialize<List<User>>(taskTwoReader);
            var task3 = Deserialize<int>(taskThreeReader);
            var task4 = Deserialize<List<string>>(taskFourReader);
            var task5 = Deserialize<User>(taskFiveReader);
            
            Console.WriteLine("Task 1: " + (users.TaskOne().SequenceEqual(task1) ? "Correct" : "Wrong"));
            Console.WriteLine("Task 2: " + (users.TaskTwo().SequenceEqual(task2) ? "Correct" : "Wrong"));
            Console.WriteLine("Task 3: " + (users.TaskThree().Equals(task3) ? "Correct" : "Wrong"));
            Console.WriteLine("Task 4: " + (users.TaskFour(80).SequenceEqual(task4) ? "Correct" : "Wrong"));
            Console.WriteLine("Task 5: " + (users.TaskFive().Equals(task5) ? "Correct" : "Wrong"));
        }
 
        static T Deserialize<T>(StreamReader reader)
        {
            return JsonConvert.DeserializeObject<T>(reader.ReadToEnd());
        }
    }
 
    static class Extensions
    {
        public static List<string> TaskOne(this IEnumerable<User> users)
        {
            return new List<string>();
        }
 
        public static List<User> TaskTwo(this IEnumerable<User> users)
        {
            return new List<User>();
        }
 
        public static int TaskThree(this IEnumerable<User> users)
        {
            return 0;
        }
 
        public static List<string> TaskFour(this IEnumerable<User> users, int value)
        {
            return new List<string>();
        }
 
        public static User TaskFive(this IEnumerable<User> users)
        {
            return new User();
        }
 
        public static TSource MaxBy<TSource, TResult>(
            this IEnumerable<TSource> source, Func<TSource, TResult> selector) 
            where TResult : IComparable<TResult>
        {
            return default(TSource);
        }
    }
 
    class User : IEquatable<User>
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime DateOfBirth { get; set; }
        public City City { get; set; }
        public int Rating { get; set; }
        public string Token { get; set; }
 
        public bool Equals(User other)
        {
            if (ReferenceEquals(null, other)) return false;
            if (ReferenceEquals(this, other)) return true;
            return FirstName == other.FirstName && 
                   LastName == other.LastName && 
                   DateOfBirth.Equals(other.DateOfBirth) && 
                   City.Equals(other.City) && 
                   Rating == other.Rating && 
                   Token == other.Token;
        }
    }
 
    class City : IEquatable<City>
    {
        public string Title { get; set; }
        public string Country { get; set; }
 
        public bool Equals(City other)
        {
            return Title == other.Title && 
                   Country == other.Country;
        }
    }
}
Добавлено через 11 минут
C#
1
return users.Where(u=> u.Token!=null).OrderBy(u=>u.Ratings)
Это что-то вроде такого будет, но как тогда засунуть условие:В случае одинакового рейтинга отсортировать их по имени (в
алфавитном порядке) (FirstName).:
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2022, 18:40
Ответы с готовыми решениями:

Запрос: получить список студентов, у которых сессия сдана на отлично
На рисунке изображена диаграмма базы данных, таблица студентов и экзаменов, связь многие ко многим. Дело в том, что мне необходимо получить...

как проверить, есть ли активная сессия с указанным SessionID (asp.net)
Здравствуйте, уважаемые специалисты и любители программирования! Подскажите, как проверить, есть ли активная сессия с указанным...

Получить список пользователей компьютера, их UID и все группы в которых они состоят
Доброго времени суток! Студент 2-го курса МИФИ. Задали вывести на экран список всех пользователей компьютера, их UID и все группы в...

4
 Аватар для Arthur Progy
251 / 167 / 94
Регистрация: 16.09.2019
Сообщений: 457
28.11.2022, 18:53
Лучший ответ Сообщение было отмечено ArtemGubarev как решение

Решение

ArtemGubarev,
C#
1
return users.Where(u=> u.Token!=null).OrderBy(u=>u.Ratings).ThenBy(u=>u.FirstName);
должен получится
1
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,869
28.11.2022, 20:10
ArtemGubarev, Я конечно стесняюсь спросить, а что за такие интересные методы расширения? Какую они там функцию выполняют, чет я не как понять не могу.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,661
Записей в блоге: 3
28.11.2022, 20:21
Kazbek17, присоединяюсь к вопросу
1
 Аватар для Arthur Progy
251 / 167 / 94
Регистрация: 16.09.2019
Сообщений: 457
28.11.2022, 21:11
ArtemGubarev, Вот ответ:)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2022, 21:11
Помогаю со студенческими работами здесь

Строка: Получить список уникальных фамилий, каждая из которых есть в первом списке.
Помогите справиться с задачей. Имеется список повторяющихся фамилий: Симонян Н.Ю. Сасюков А.И. Сасюков А.И. Сасюков А.И. ...

Получить список файлов из заданного каталога, в которых есть строки, оканчивающиеся на знак !
8. Получить список файлов из заданного каталога, в которых есть строки, оканчивающиеся на знак ! .

Получить список пользователей, относящихся к группе с наибольшим числом пользователей
Дали задание: &quot;Получить список пользователей относящихся к группе с наибольшим числом пользователей&quot; программа для Линукса, никогда не...

Отсортировать список по двум текстовым полям, не используя Linq
Как отсортировать список по двум полям и оба поля ( и Pole1(string) и Pole2(string)) по убыванию? Linq не использовать ...

Доступ к сайту для одного логина одна активная сессия
Здравствйте. Нужно организовать доступ к сайту таким образом, чтобы под одним логином можно было зайти только одному пользователю, а не...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru