Множество получает минимальную стоимость, больше, чем другая стоимость

У меня есть следующее множество:

float[] arr = { 0, 0.1f, 0, 0.1f, 0, 0.2f };

Что самый изящный путь состоит в том, чтобы выбрать минимальную стоимость, которая больше, чем 0 или больше, чем некоторая другая стоимость?

Я попытался использовать Мин() и Избранный ... От... OrderBy... Сначала() , но никакая удача до сих пор.

4
nl ja de

4 ответы

Use the LINQ method Where to filter out zero values then use the LINQ method Min to retrieve the lowest value of the resulting collection.

arr.Where(f => f > 0).Min();
19
добавлено
Как обращаться с пустой исключительной ситуацией в этом случае когда прибытие. Где (f => f> 0) не возвращают результата?
добавлено автор Milind Anantwar, источник

Можно исключить ценности, используя , Где и затем применяют Мин :

array.Where(a => a > 1 && a < 10).Min();
4
добавлено

Попытайтесь использовать Где фильтр;

Фильтрует последовательность ценностей на основе предиката.

И после использования Минута () метод.

Возвращает минимальное значение в последовательности ценностей.

arr.Where(a => a > 0).Min();

Вот, a ДЕМОНСТРАЦИОННЫЙ ПРИМЕР.

3
добавлено

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

float[] arr = { 0, 0.1f, 0, 0.1f, 0, 0.2f };
var someOtherValue = 0;

var min = arr.Where(x => x > someOtherValue)
            .Cast
2
добавлено
Или я предполагаю, что он мог использовать прибытие. Где (x => x> someOtherValue).DefaultIfEmpty (плавание. PositiveInfinity).Min() , если он хотел в случае где there' s никакая "хорошая" стоимость во множестве.
добавлено автор Jeppe Stig Nielsen, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot