public static IEnumerable <int> WhereFalse(
     this TranslatedArray <GRBVar> array,
     Func <GRBVar, double> valueSelector = null)
 {
     foreach (var i in array.Indices)
     {
         if (array[i].ToDouble(valueSelector) < 0.5)
         {
             yield return(i);
         }
     }
 }
        public static IEnumerable <int> WhereNonZero(
            this TranslatedArray <GRBVar> array,
            Func <GRBVar, double> valueSelector = null)
        {
            var comparer = NumericComparer.Default;

            foreach (var i in array.Indices)
            {
                if (comparer.AreEqual(array[i].ToDouble(valueSelector), 0.0) == false)
                {
                    yield return(i);
                }
            }
        }
        public static bool TryWhereNonZero(
            this TranslatedArray <GRBVar> variables,
            out int index,
            Func <GRBVar, double> valueSelector = null)
        {
            var comparer = NumericComparer.Default;

            index = default;
            foreach (var i in variables.Indices)
            {
                if (comparer.AreEqual(variables[i].ToDouble(valueSelector), 0.0) == false)
                {
                    index = i;
                    return(true);
                }
            }

            return(false);
        }