Manchmal möchte man vielleicht mehrere Elemente aus einer Liste entfernen. Wenn man das Element zum entfernen hat, kann man einfach .Remove(item) benutzen, mit mehreren Indexen ist das jedoch nicht so einfach. Da muss man auf die Reihenfolge achten um auch wirklich das richtige Element zu löschen.
Benötigte Namespaces
System
System.Collections.Generic
System.Linq
/// <summary>
/// Entfernt die Element mit dem angegebenen Index.
/// </summary>
/// <typeparam name="T">Der Typ der Elemente in der Liste.</typeparam>
/// <param name="source">Die zu bearbeitende Liste</param>
/// <param name="itemIndices">Die zu entfernenden Indexen.</param>
public static void RemoveItemsAt<T>(this IList<T> source, params int[] itemIndices)
{
if (source == null)
throw new ArgumentNullException("source");
if (itemIndices == null)
throw new ArgumentNullException("itemIndices");
foreach (var itemIndex in itemIndices.OrderByDescending(x => x))
source.RemoveAt(itemIndex);
}
Kommentare zum Snippet