У меня есть набор объектов модели, которые имеют общее логическое свойство IsVisible
. Все, что мне нужно сделать, это найти, если хотя бы один из наборов имеет это значение, равное TRUE
. Другими словами, если у меня есть 10 000 объектов, а второй - true
, мне не нужно прокручивать остальные 9998. У меня уже есть ответ.Простая проверка, чтобы узнать, имеет ли хотя бы один объект в наборе значение свойства TRUE
Теперь я знаю, что могу написать собственную функцию итерации и вырваться из первого значения «True
», но я надеюсь, что это может сделать LINQ. На самом деле, это даже не обязательно LINQ. Любые предложения приветствуются.
BTW, язык выбора - C#.
Update:
Смотрите мой последний пост здесь. Я добавил несколько тестовых кодов и таймингов. Похоже, что LINQ довольно плохая по производительности по сравнению с тем, что я сам делал тест. Конечно, писать проще, но в критически важных таймингах я не уверен.
Что меня удивило, но в большинстве случаев я выполнял их, перечисление выиграл и честным клипом, но по какой-то причине, когда я завернул тест в несколько проходов, похоже, он переключился на индексирование с помощью кешированный счет считается самым быстрым.
Я также заметил, что если я не сброшу все на «false», все остальные/повторные тесты кажутся намного быстрее. Как-то, переустановив все на FALSE (который был намеренно переполнен, чтобы проверить именно это ...) меняет ситуацию.
Интересно. Не знаю, куда я пойду. Это не является критически важной системой, поэтому, возможно, я поеду на читаемость, но все же. Интересно.
При оптимизации вы должны отказаться от скорости выполнения с затратами программиста. Большинство разработчиков разработчиков предпочитают покупать больше серверов, чем платить больше программистов, и лишь небольшая часть кода работает на критическом пути. Часто код, который быстрее всего записывает и тестирует выигрыши над кодом, выполняется быстрее всего, когда учитываются все затраты (включая стоимость dev). По моему опыту, Linq намного быстрее записывается, но выполняет медленнее. Он все еще выигрывает почти все время в моем опыте. – Slaggg
Slagg, еще не хватает очков, чтобы проголосовать за комментарии, но знаете, если бы я сделал, вы бы получили один для этого. Может быть очевидным, но красноречивость этого действительно выделяется (не похоже на то, что она делает тоже! Умный мой друг! Очень умно!) – MarqueIV