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

Как проверить результат linq на наличие в списке элементов?

22.02.2021, 19:46. Показов 3305. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace CSLight
{
    class Program
    {
        static void Main(string[] args)
        {
            DetectiveOffice detectiveOffice = new DetectiveOffice();
            detectiveOffice.Work();
        }
    }
 
    class DetectiveOffice
    {
        private List<Criminal> _criminals = new List<Criminal>()
        {
            new Criminal("Потоцкий Роман Юрьевич", "Русский", 168, 51, false),
            new Criminal("Иванов Иван Иванович", "Русский", 168, 51, true),
            new Criminal("Петров Петр Петрович", "Украинец", 170, 60, false),
            new Criminal("Дмитров Дмитрий Дмитриевич", "Украинец", 170, 60, false),
            new Criminal("Алексеев Алексей Алексеевич", "Украинец", 170, 60, true)
        };
 
        public void Work()
        {
            string userInput;
            bool isWork = true;
 
            Console.WriteLine("Добро пожаловать в детективное агенство!");
            while (isWork)
            {
                Console.WriteLine("Введите команду:\n1 - Найти преступника в базе данных\n2 - Выйти из детективного агенства");
                userInput = Console.ReadLine();
 
                switch (userInput)
                {
                    case "1":
                        FindCriminal();
                        break;
                    case "2":
                        isWork = false;
                        break;
                    default:
                        break;
                }
            }
 
            Console.WriteLine("Вы вышли из детективного агенства");
        }
 
        private void FindCriminal()
        {
            int weight;
            int height;
            string nationality;
 
            Console.WriteLine("Введите данные о преступнике:");
 
            Console.WriteLine();
            Console.WriteLine("Рост");
            height = EnterNumber();
 
            Console.WriteLine();
            Console.WriteLine("Вес");
            weight = EnterNumber();
 
            Console.WriteLine();
            Console.WriteLine("Национальность");
            nationality = Console.ReadLine();
 
            Console.WriteLine();
 
            var filteredCriminals = from Criminal criminal in _criminals
                                   where criminal.Height == height && criminal.Weight == weight && criminal.Nationality == nationality && criminal.IsArrested == false
                                   select criminal;
 
            if (filteredCriminals == null) // Не выполняется этот блок
            {
                Console.WriteLine("Таких преступников нет в базе данных");
            }
            else
            {
                foreach (var criminal in filteredCriminals)
                {
                    Console.WriteLine(criminal.Name);
                }
            }
        }
 
        private int EnterNumber()
        {
            string number;
            int parsedNumber = 1;
            bool isParsed = false;
 
            while (isParsed == false)
            {
                Console.WriteLine("Введите число");
                number = Console.ReadLine();
 
                if(int.TryParse(number,out parsedNumber) && parsedNumber > 0)
                {
                    isParsed = true;
                }
                else
                {
                    Console.WriteLine("Вы ввели неправильно число!");
                }
            }
 
            return parsedNumber;
        }
    }
 
    class Criminal
    {
        public string Name { get; private set; }
        public string Nationality { get; private set; }
        public int Height { get; private set; }
        public int Weight { get; private set; }
        public bool IsArrested { get; private set; }
 
        public Criminal(string name, string nationality, int height, int weight, bool isArrested)
        {
            Name = name;
            Nationality = nationality;
            Height = height;
            Weight = weight;
            IsArrested = isArrested;
        }
    }
}
Всем привет! Написал код по этой задаче:
У нас есть список всех преступников.
В преступнике есть поля: ФИО, заключен ли он под стражу, рост, вес, национальность.
Вашей программой будут пользоваться детективы.
У детектива запрашиваются данные (рост, вес, национальность), и детективу выводятся все преступники, которые подходят под эти параметры, но уже заключенные под стражу выводиться не должны.

Вопрос такой: Как проверить пустой ли linq.
Заранее спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2021, 19:46
Ответы с готовыми решениями:

Проверить наличие текста в списке элементов
Есть XPath который указывает на блок элементов на сайте https://www.flagman.kiev.ua/ private readonly By _BottomBoxInformation =...

Проверить на наличие двух одинаковых элементов в списке
name() вернуть true name() вернуть false. На Erlang

Линейные списки: проверить наличие в списке двух одинаковых элементов
здравствуйте ребята прошу помогиTе Дан список L, состоящий из записей: первое поле – вещественное число, второе – адрес следующего...

4
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
22.02.2021, 19:56
roma1808, 83 строку замените на
C#
1
if (!filteredCriminals.Any())
1
 Аватар для JustinTime
964 / 582 / 268
Регистрация: 20.12.2016
Сообщений: 1,506
22.02.2021, 19:57
Лучший ответ Сообщение было отмечено roma1808 как решение

Решение

C#
1
if(filteredCriminals.Count() == 0)
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
22.02.2021, 20:00
Цитата Сообщение от roma1808 Посмотреть сообщение
Как проверить пустой ли linq.
Если речь идет про 79 строку кода, а именно var filteredCriminals, то не плохо бы узнать тип данных, а именно IEnumerable<T>. Смотрим в документации его методы и методы расширения и видим Count() - метод, возвращающий кол-во элементом. Дальше думаю проблем не возникнет
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
22.02.2021, 23:18
JustinTime, Enifan, зачем считать количество элементов, если надо всего лишь проверить на пустоту?
Товарищ ProgItEasy выше правильно посоветовал Any().
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2021, 23:18
Помогаю со студенческими работами здесь

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

Проверить наличие элемента в списке)
Здравствуйте). Я сформировал список,нашел в нем средний арифметический элемент,НО я не знаю как выяснить, есть ли в списке такой элемент(...

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

Проверить наличие в списке определенной строки
Добрый день! Помогите разобраться, есть строка string z=&quot;1;2;3;4;5&quot;; Далее я её преобразовываю в массив string new_z=...

Проверить наименование контрагента на наличие ее в списке групп компаний
Доброго дня. Думала, что знаю Эксель на 3 (по 10-бальной шкале).... А-н, нет. Думаю, где-то на 0,00001 потянет.... У меня...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru