/// <summary>
 /// Determines whether the bag contains the item specified
 /// </summary>
 /// <typeparam name="T">The object type</typeparam>
 /// <param name="Collection">The collection.</param>
 /// <param name="Item">The item.</param>
 /// <param name="Comparer">The comparer.</param>
 /// <returns>
 /// True if the item is present, false otherwise
 /// </returns>
 public static bool Contains <T>(this ConcurrentBag <T> Collection, T Item, IEqualityComparer <T> Comparer = null)
 {
     Contract.Requires <ArgumentNullException>(Collection != null, "Collection");
     Comparer = Comparer.Check(new GenericEqualityComparer <T>());
     foreach (T TempValue in Collection)
     {
         if (Comparer.Equals(TempValue, Item))
         {
             return(true);
         }
     }
     return(false);
 }
        /// <summary>
        /// Determines the position of an object if it is present, otherwise it returns -1
        /// </summary>
        /// <typeparam name="T">Object type</typeparam>
        /// <param name="List">List of objects to search</param>
        /// <param name="Object">Object to find the position of</param>
        /// <param name="EqualityComparer">
        /// Equality comparer used to determine if the object is present
        /// </param>
        /// <returns>The position of the object if it is present, otherwise -1</returns>
        public static int PositionOf <T>(this IEnumerable <T> List, T Object, IEqualityComparer <T> EqualityComparer = null)
        {
            Contract.Requires <ArgumentNullException>(List != null, "List");
            EqualityComparer = EqualityComparer.Check(() => new GenericEqualityComparer <T>());
            int Count = 0;

            foreach (T Item in List)
            {
                if (EqualityComparer.Equals(Object, Item))
                {
                    return(Count);
                }
                ++Count;
            }
            return(-1);
        }
Example #3
0
 /// <summary>
 /// Determines if the object is not equal to default value and throws the exception that is passed in if it is
 /// </summary>
 /// <param name="Item">The object to check</param>
 /// <param name="EqualityComparer">Equality comparer used to determine if the object is equal to default</param>
 /// <param name="Exception">Exception to throw</param>
 /// <returns>Returns Item</returns>
 public static T ThrowIfNotDefault <T>(this T Item, Exception Exception, IEqualityComparer <T> EqualityComparer = null)
 {
     return(Item.ThrowIf(x => !EqualityComparer.Check(() => new GenericEqualityComparer <T>()).Equals(x, default(T)), Exception));
 }
Example #4
0
 /// <summary>
 /// Determines if the object is equal to a specific value
 /// </summary>
 /// <typeparam name="T">Object type</typeparam>
 /// <param name="Object">Object to test</param>
 /// <param name="ComparisonObject">Comparison object</param>
 /// <param name="Comparer">Comparer</param>
 /// <returns>True if the object passes the predicate, false otherwise</returns>
 public static bool Is <T>(this T Object, T ComparisonObject, IEqualityComparer <T> Comparer = null)
 {
     Comparer = Comparer.Check(() => new GenericEqualityComparer <T>());
     return(Comparer.Equals(Object, ComparisonObject));
 }