Files
BeWoPlaner/Shared/Extensions/ICollectionExtensions.cs
Waldi e8da1fdff7 BewoPlaner .Net Version 4.5 und Devexpress version 17....
plus RTF Dokumentation für HPH bersenbrueck unter ServiceRecord
und paar kleinigkeiten
2017-07-27 09:58:04 +02:00

51 lines
1.2 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace BS.Shared.Extensions
{
public static class ICollectionExtensions
{
public static void AddIfNotIn<T>(this ICollection<T> pCollection, T pToAdd)
{
if (!pCollection.Contains(pToAdd))
{
pCollection.Add(pToAdd);
}
}
public static void AddRange<T>(this ICollection<T> pCollection, IEnumerable<T> pToAdd)
{
foreach (var iItem in pToAdd)
{
pCollection.Add(iItem);
}
}
public static bool Exists<T>(this IEnumerable<T> pCollection, Predicate<T> pMatch)
{
return pCollection.Any(iItem => pMatch(iItem));
}
public static void RemoveRange<T>(this ICollection<T> pList, IEnumerable<T> pToRemove)
{
foreach (T iItem in pToRemove.ToList())
{
pList.Remove(iItem);
}
}
public static void RemoveRange<T>(this ICollection<T> pList, Predicate<T> pMatch)
{
var lToDelete = pList.Where(t => pMatch(t)).ToHashSet();
pList.RemoveRange(lToDelete);
}
public static bool AreEqual<T>(this ICollection<T> pCollection, ICollection<T> pCollection2)
{
throw new Exception("Hier muss noch AddEqual implementiert werden");
}
}
}