|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
Коллекция, выполнить действие с переменной, а потом проверить на условие20.08.2015, 00:34. Показов 1572. Ответов 8
Метки нет (Все метки)
Смотрите, есть List<string> это допустим ссылки, мне надо во первых удалить из них адрес сайта с http, короче http://example.com потом с тем что останется выполнить Trim, а потом проверить удовлетворяет ли это нескольким условиям, допустим !string.IsNullOrEmpty и есть ли данная запись в другом списке
если делать через расширения к сожалению это делается в 2 метода Select, потом Where, а точнее еще 3-й метод - Except придется использовать. может есть какой то один метод (расширенный), способный за раз это сделать или может можно как то через LINQ можно? или только по старинке через for / foreach
0
|
|
| 20.08.2015, 00:34 | |
|
Ответы с готовыми решениями:
8
Условие: если строка пустая - выполнить действие Выполнить действие в зависимости от значения переменной |
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
|
| 20.08.2015, 01:24 | |
|
..эмм, а Select и Where -- это разве не линки?!
![]() А вообще что смущает? LINQ один фиг отрабатывают, когда из IEnumerable приводятся к List/Array или foreach'ем обрабатываются, так что за кучу линков можно не сильно беспокоиться. А если ну прям принципиально без вызова многих методов, можно обойтись (from item in list where (condition) && (condition2) ... select item).ToList();
1
|
|
|
Администратор
|
||
| 20.08.2015, 10:30 | ||
|
VLK, словесное выражение кода читать уж больно трудно. Может, напишете, что получилось с использованием
Не словами, а на C#.
1
|
||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|||||||||||
| 20.08.2015, 11:12 [ТС] | |||||||||||
|
Anderok, tezaurismosis, беда использования этих 3-х методов в том, как я понимаю каждый из них внутри прокручивает все элементы через цикл, получается я буду 3 раза подряд проходится циклом, тут уже целесообразнее это сделать через for / foreach за один проход, вот я и подумал может есть какой то один метод что бы за один проход..
Добавлено через 8 минут я подумал может можно через LINQ, что то типа:
голубятня какая то одним словом получается. Добавлено через 1 минуту А запись типа:
![]() что конечно очень жаль. Ну т.е. сначала с переменной делаются все ужасные штуки и потом после этой обработки я ее обработанную сравниваю и т.д.
0
|
|||||||||||
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
||||||
| 20.08.2015, 11:16 | ||||||
Сообщение было отмечено VLK как решение
Решение
VLK, ну если это смущает, то в линках есть оператор let
будет что-то вроде (полу-псевдокод)
1
|
||||||
|
Администратор
|
|
| 20.08.2015, 11:22 | |
|
VLK, это понятно. Если будет работать слишком медленно - перепишите с помощью foreach.
Один из принципов работы LINQ - "конвейерная обработка" с последовательным применением нужных методов. Методы в LINQ сделаны так, чтобы просто их было применять в таком "конвейере". Поэтому ничего страшного в этих лишних прогонах нет - мы всё-таки на высокоуровневом ЯП пишем и гоняться за спичками - только своё время тратить. Но речь не про 3 вызова item.Replace, конечно, их нужно отделить в отдельную переменную, см. выше про let.
1
|
|
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
|
| 20.08.2015, 11:32 | |
|
Ну а если прям-вообще каждая микросекунда performance' а горит, то и foreach не стоит трогать. Он относительно медленней простого for(;
за счет скрытого блока try { }finaly{}
1
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 20.08.2015, 11:37 [ТС] | |
|
Anderok, насчет let это уже мой косяк, не доглядел что такой оператор есть, а он у меня в записях был, с данным оператором получается делается все что я хочу.
0
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 26.08.2015, 22:31 [ТС] | |
|
Anderok, tezaurismosis, вот провел замеры на тему "что быстрее" по этому перебору, очень интересные цифры, взгляните - Список для максимально быстрого поиска по нему
0
|
|
| 26.08.2015, 22:31 | |
|
Помогаю со студенческими работами здесь
9
RichEdit просмотреть и узнать атрибут текста потом выполнить условие
Отследить изменение значения переменной и выполнить действие Проверить если вполучили число из строки то выполнить какое либо действие Нужно проверить существует ли определенный объект, и после этого выполнить действие, если он есть Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|