Plane.Libraries/Plane/Collections/CollectionExtensions.cs

49 lines
1.7 KiB
C#
Raw Normal View History

2017-02-27 02:04:13 +08:00
using System.Collections.Generic;
namespace Plane.Collections
{
public static class CollectionExtensions
{
/// <summary>
/// Calls ICollection<T>.Add internally, but returns the original collection for chain programming.
/// </summary>
/// <typeparam name="T">The item type.</typeparam>
/// <param name="origin">The original collection.</param>
/// <param name="itemToAdd">The item to add.</param>
/// <returns>The original collection.</returns>
public static ICollection<T> AddEx<T>(this ICollection<T> origin, T itemToAdd)
{
origin.Add(itemToAdd);
return origin;
}
/// <summary>
/// Add items to the collection.
/// </summary>
/// <typeparam name="T">The item type.</typeparam>
/// <param name="origin">The original collection.</param>
/// <param name="itemToAdd">The items to add.</param>
/// <returns>The original collection.</returns>
public static ICollection<T> AddEx<T>(this ICollection<T> origin, IEnumerable<T> itemsToAdd)
{
foreach (var item in itemsToAdd)
{
origin.Add(item);
}
return origin;
}
/// <summary>
/// Calls ICollection<T>.Clear internally, but returns the original collection for chain programming.
/// </summary>
/// <typeparam name="T">The item type.</typeparam>
/// <param name="origin">The original collection.</param>
/// <returns>The original collection.</returns>
public static ICollection<T> ClearEx<T>(this ICollection<T> origin)
{
origin.Clear();
return origin;
}
}
}