Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Object class extension for IEnumerable, IComparable and where

//http://arolibraries.codeplex.com/ //The MIT License (MIT) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AroLibraries.ExtensionMethods.Objects {     public static class ObjectExt     {         public static bool Ext_In<T>(this T value, IEnumerable<T> values)         {             if (values == null)                 throw new ArgumentNullException("values is NULL");             return values.Contains(value);         }         public static T Ext_Limit<T>(this T value, T maximum) where T : IComparable<T>         {             return value.CompareTo(maximum) < 1 ? value : maximum;         }         public static bool Ext_IsBetween<T>(this T me, T lower, T upper) where T : IComparable<T>         {             return me.CompareTo(lower) >= 0 && me.CompareTo(upper) < 0;         }         public static T Ext_GetInRangeValue<T>(this T me, T lower, T upper, T defaultIfLower, T defaultIfUpper) where T : IComparable<T>         {             if (me.CompareTo(lower) >= 0 && me.CompareTo(upper) <= 0)             {                 return me;             }             else if (me.CompareTo(lower) < 0)             {                 return defaultIfLower;             }             else if (me.CompareTo(upper) > 0)             {                 return defaultIfUpper;             }             return default(T);         }         public static T Ext_GetInRangeValue<T>(this T me, T lower, T upper)             where T : IComparable<T>         {             return Ext_GetInRangeValue<T>(me, lower, upper, lower, upper);         }     } }