public static void AddUnique <T>(this ICollection <T> list, IEnumerable <T> items) { foreach (var item in items) { list.AddUnique(item); } }
public static ICollection <T> AddRange <T>( [NotNull] this ICollection <T> collection, [NotNull] IEnumerable <T> other, bool checkUnicity = false) { Check.NotNull(collection) .NotNull(other); if (checkUnicity) { foreach (var item in other) { collection.AddUnique(item); } } else { foreach (var item in other) { collection.Add(item); } } return(collection); }
/// <summary> /// 添加唯一项 /// </summary> /// <example> /// <code> /// IList<string> list2 = new List<string>(); /// list2.AddUnique<string>("test1"); /// list.AddUnique<string>(list2); /// </code> /// </example> /// <typeparam name="T">类型</typeparam> /// <param name="collection">ICollection扩展</param> /// <param name="values">值</param> /// <returns>true/false</returns> public static ICollection <T> AddUnique <T>(this ICollection <T> collection, IEnumerable <T> values) { foreach (var value in values) { collection.AddUnique <T>(value); } return(collection); }
/// <summary> Adds specified items to the collection, if the collection doesn't already contain such items. /// </summary> /// <typeparam name="T">The type of the elements of the collections.</typeparam> /// <param name="collection">The collection to add to.</param> /// <param name="items">The elements to add.</param> public static void AddUnique <T>([NotNull] this ICollection <T> collection, [NotNull] IEnumerable <T> items) { Check.NotNull(collection); foreach (var item in items) { collection.AddUnique(item); } }
public static ICollection <string> AddUnique(this ICollection <string> collection, params string[] items) { foreach (var item in items) { collection.AddUnique(item); } return(collection); }
public static ICollection <T>?AddUniqueRange <T>(this ICollection <T>?extension, ICollection <T>?collection) { if (extension is ICollection <T> && collection is ICollection <T> ) { foreach (T item in collection) { extension.AddUnique(item); } } return(extension); }
/// <summary> /// Adds the passed items to the enumerable. /// </summary> /// <typeparam name="T">The type of item to add.</typeparam> /// <param name="enumerable">The enumerable to add it to.</param> /// <param name="values">The values to add.</param> public static void AddRange <T>(this ICollection <T> enumerable, IEnumerable <T> values) { if (values == null) { return; } foreach (var item in values) { enumerable.AddUnique(item); } }
/// <summary> /// 批量添加唯一值,向泛型集合批量添加值(唯一值) /// </summary> /// <typeparam name="T">泛型</typeparam> /// <param name="collection">集合</param> /// <param name="values">值(批量)</param> /// <returns>返回添加成功数</returns> public static int AddRangeUnique <T>(this ICollection <T> collection, IEnumerable <T> values) { var count = 0; foreach (var value in values) { if (collection.AddUnique(value)) { count++; } } return(count); }
private void GetBranchContents(short nodeId, IList <Vector3> vectors, ICollection <Vector3> vertices) { if (nodeId < 0 || nodeId > nodes.Length) { return; } var node = nodes[nodeId]; if (node.flags == BSPNodeFlags.Flag_Leaf) { foreach (var index3 in node.TriIndices) { vertices.AddUnique(vectors[index3.Index0]); vertices.AddUnique(vectors[index3.Index1]); vertices.AddUnique(vectors[index3.Index2]); } return; } GetBranchContents(node.posChild, vectors, vertices); GetBranchContents(node.negChild, vectors, vertices); }
public void GetBranchContents(short nodeId, IList<Vector3> vectors, ICollection<Vector3> vertices) { if (nodeId < 0 || nodeId > nodes.Length) return; var node = nodes[nodeId]; if (node.flags == BSPNodeFlags.Flag_Leaf) { foreach (var index3 in node.TriIndices) { vertices.AddUnique(vectors[index3.Index0]); vertices.AddUnique(vectors[index3.Index1]); vertices.AddUnique(vectors[index3.Index2]); } return; } GetBranchContents(node.posChild, vectors, vertices); GetBranchContents(node.negChild, vectors, vertices); }
/// <summary> /// Adds the item in case it's not already present in the list using the default equality comparer. /// </summary> /// <typeparam name="T">The type of item to add.</typeparam> /// <param name="enumerable">The enumerable to add it to.</param> /// <param name="value">The value to add.</param> public static void AddUnique <T>(this ICollection <T> enumerable, T value) { enumerable.AddUnique(value, EqualityComparer <T> .Default); }