/// <summary> /// Removes default values from a list /// </summary> /// <typeparam name="T">Value type</typeparam> /// <param name="Value">List to cull items from</param> /// <param name="EqualityComparer">Equality comparer used (defaults to GenericEqualityComparer)</param> /// <returns>An IEnumerable with the default values removed</returns> public static IEnumerable <T> RemoveDefaults <T>(this IEnumerable <T> Value, IEqualityComparer <T> EqualityComparer = null) { if (Value.IsNull()) { return(Value); } EqualityComparer = EqualityComparer.NullCheck(new GenericEqualityComparer <T>()); return(Value.Where(x => !x.IsDefault(EqualityComparer))); }
/// <summary> /// Removes default values from a list /// </summary> /// <typeparam name="T">Value type</typeparam> /// <param name="value">List to cull items from</param> /// <param name="equalityComparer">Equality comparer used (defaults to GenericEqualityComparer)</param> /// <returns>An IEnumerable with the default values removed</returns> public static IEnumerable <T> RemoveDefaults <T>(this IEnumerable <T> value, IEqualityComparer <T> equalityComparer = null) { if (value.IsNull()) { return(value); } equalityComparer = equalityComparer.NullCheck(() => new GenericEqualityComparer <T>()); return(value.Where(x => !x.IsDefault(equalityComparer))); }
/// <summary> /// Removes default values from a list /// </summary> /// <typeparam name="T">Value type</typeparam> /// <param name="Value">List to cull items from</param> /// <param name="EqualityComparer">Equality comparer used (defaults to GenericEqualityComparer)</param> /// <returns>An IEnumerable with the default values removed</returns> public static IEnumerable <T> RemoveDefaults <T>(this IEnumerable <T> Value, IEqualityComparer <T> EqualityComparer = null) { if (Value.IsNull()) { yield break; } EqualityComparer = EqualityComparer.NullCheck(new GenericEqualityComparer <T>()); foreach (T Item in Value.Where(x => !EqualityComparer.Equals(x, default(T)))) { yield return(Item); } }
/// <summary> /// 从列表中移除默认值 /// </summary> public static IEnumerable <T> RemoveDefaults <T>(this IEnumerable <T> value, IEqualityComparer <T> equalityComparer = null) { if (value == null) { yield break; } equalityComparer = equalityComparer.NullCheck(new GenericEqualityComparer <T>()); foreach (T item in value.Where(x => !equalityComparer.Equals(x, default(T)))) { yield return(item); } }
/// <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) { Guard.NotNull(list, "list"); equalityComparer = equalityComparer.NullCheck(() => new GenericEqualityComparer <T>()); int count = 0; foreach (var item in list) { if (equalityComparer.Equals(Object, item)) { return(count); } ++count; } return(-1); }
/// <summary> /// Determines if the object is null /// </summary> /// <typeparam name="T">Object type</typeparam> /// <param name="Object">The object to check</param> /// <param name="equalityComparer">Equality comparer used to determine if the object is equal to default</param> /// <returns>True if it is null, false otherwise</returns> public static bool IsDefault <T>(this T Object, IEqualityComparer <T> equalityComparer = null) { return(equalityComparer.NullCheck(() => new GenericEqualityComparer <T>()).Equals(Object, default(T))); }
/// <summary> /// Determines if the object is null /// </summary> public static bool IsDefault <T>(this T obj, IEqualityComparer <T> equalityComparer = null) { return(equalityComparer.NullCheck(new GenericEqualityComparer <T>()).Equals(obj, default(T))); }