/// <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); }
/// <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)); }
/// <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)); }