LINQ заканчивается, когда нет никаких соответствий?

Начиная с то, что Вы желаете сделать, добавляет управление зависимостью к существующему проекту Муравья, это точно, что Ivy разработала, чтобы сделать. Управление зависимостью является большой частью Знатока, но далекий от всего этого. Знаток является большим количеством ориентированного на проект инструмента, который делает несколько других вещей в дополнение к зависимостям. Это было бы достойно рассмотрения, если бы Вы планировали мигрировать на Знатока и использовать дополнительные функции Maven также, но это - слишком, если все, для чего Вы использовали бы его, должно отделить Муравья.

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

8
задан jasonh 7 October 2009 в 17:48
поделиться

3 ответа

Решение, предложенное моей девушкой, - это вариант сортировки слиянием. Единственная модификация заключается в том, что на этапе слияния просто игнорируйте повторяющиеся значения. Это решение также будет O (n log n). В этом подходе сортировка / удаление дубликатов объединены. Однако я не уверен, что это имеет значение.

Пока вы не начнете перебирать его (явно или с помощью вызова типа Count () ), ничто не проверяло, есть ли результаты или нет. Только когда вы перечисляете его, что-нибудь произойдет.

Таким образом, вы можете сделать:

foreach (int x in results)
{
    Console.WriteLine("This won't happen");
}

Или:

Console.WriteLine(results.Any()); // Will print false
Console.WriteLine(results.Count()); // Will print 0

Любой из них приведет к тому, что предикат будет оцениваться по каждому элементу в диапазоне ... но до этого, он вообще не будет вызываться.

Это важно понять, потому что это означает, что результаты не могут быть нулевыми , сохраняя при этом свойство ленивая оценка - пока вы не попытаетесь использовать результаты , не получится, должно ли оно быть нулевым или нет!

10
ответ дан 5 December 2019 в 10:04
поделиться

В этом случае он возвращает IEnumerable со счетом 0 элементов.

4
ответ дан 5 December 2019 в 10:04
поделиться

Ссылка на пустой IEnumerable .

3
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: