Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
3 / 3 / 2
Регистрация: 20.07.2014
Сообщений: 654

Какой вариант для удаления лучше

23.08.2019, 17:46. Показов 1295. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, какой вариант для удаления лучше? Исключением с созданием нового листа или удалением?

C#
1
2
            int del = Convert.ToInt32(Console.ReadLine());
            products = products.Where(note => note.Id != del).ToList();
или


C#
1
2
3
4
5
6
7
            for (int i = products.Count - 1; i >= 0; i--)
            {
                if (products[i].Id == del)
                {
                    products.RemoveAt(i);
                }
            }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2019, 17:46
Ответы с готовыми решениями:

Какой лучше использовать вариант для соединения с веб-приложением
Привет, форум! Вообще, просто вопрос, нежели потребность помощи в коде. Значит, имеется у меня клиент десктопный и сервер на...

Какой IEnumerable<T> лучше использовать для быстрого удаления элементов
Может кто-нибудь подсказать вид коллекции, которая позволяет быстро удалять элемент на определённой позиции? List&lt;T&gt; не нравится тем,...

Какой вариант хранения данных о пользователях лучше?
Вариант 1. Есть папка Users. В ней находятся папки пользователей , в каждой папке есть текстовый файл содержащий пароль пользователя . И...

7
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
23.08.2019, 18:09
Второй вариант должен быть быстрее в плане производительности, особенно если в списке 0 или 1 элемент соответствует условию.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
23.08.2019, 18:44
Цитата Сообщение от antoniogrid Посмотреть сообщение
удалением
products.RemoveAll(...);
0
3 / 3 / 2
Регистрация: 20.07.2014
Сообщений: 654
23.08.2019, 19:47  [ТС]
Да, элементов мало

А если бы было много?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
24.08.2019, 01:11
antoniogrid, имхо, оба варианта не критичны, если не часто, но, если часто, то проблема не в варианте, а в подходе к решению задачи
0
3 / 3 / 2
Регистрация: 20.07.2014
Сообщений: 654
24.08.2019, 19:49  [ТС]
А чем может быть проблема в подходе?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
25.08.2019, 13:12
Лучший ответ Сообщение было отмечено antoniogrid как решение

Решение

Цитата Сообщение от antoniogrid Посмотреть сообщение
Исключением с созданием нового листа или удалением?
Это у вас два концептуально различных метода.
В первом products.Where у вас создаётся НОВЫЙ список и переменной products присваивается ссылка на него.
Во втором методе происходит удаление элемента из списка.
C#
1
2
3
4
            var pr = products;
            int del = Convert.ToInt32(Console.ReadLine());
            products = products.Where(note => note.Id != del).ToList();
            Console.WriteLine(pr == products); // Выводит False
C#
1
2
3
4
5
6
7
8
9
            var pr = products;
            for (int i = products.Count - 1; i >= 0; i--)
            {
                if (products[i].Id == del)
                {
                    products.RemoveAt(i);
                }
            }
            Console.WriteLine(pr == products); // Выводит True
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
25.08.2019, 13:16
Цитата Сообщение от antoniogrid Посмотреть сообщение
А чем может быть проблема в подходе?
Для удаления элементов по условию есть метод RemoveAll :
C#
1
2
            int del = Convert.ToInt32(Console.ReadLine());
            products.RemoveAll(note => note.Id == del);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2019, 13:16
Помогаю со студенческими работами здесь

Вывод числа словами. Какой вариант лучше
В книге Шилдта C#4.0 есть такой вариант: int num; int nextdigit; int numdigits; int n = new int; string digits = {...

Какой вариант лучше? 6 похожих строчек кода vs вызов функции с использованием лямбда-выражения
delegate void изменить &lt;T&gt;(T элемент, bool включить); void Управлять&lt;T&gt;(bool включить, изменить&lt;T&gt; действие, params T элемент) ...

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

Какой WeatherAPI для C# лучше?
Доброго времени суток! Суть задачи такова, что необходимо получать погодные данные для 900 городов Европы, реализовал с помощью парсинга...

Какой из приведенных Regex лучше для парсинга ссылок
Нашел два регекса для поиска URL. (https?:\/\/)?(+)\.({2,6})(*)*\/? (https?:\/\/)?(+)\.({2,6}\.?)(\/*)*\/? В моих тестах...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки 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. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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