Ich stelle euch hiermit mal ein paar meiner Erweiterungsmethoden zur Verfügung.
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
namespace Tools
{
/// <summary>
/// Stellt eine Reihe von Erweiterungsmethoden zur
/// Verfügung.
/// </summary>
public static class Extensions
{
/// <summary>
/// Kopiert die Eigenschaften eines Objektes
/// auf ein anderes.
/// </summary>
public static T CopyProperties<T>(this T source, T dest)
{
foreach (PropertyInfo prop in typeof(T).GetProperties())
{
if (prop.CanRead && prop.CanWrite)
{
prop.SetValue(dest, prop.GetValue(source, null), null);
}
}
return dest;
}
/// <summary>
/// Kopiert eine Liste.
/// </summary>
public static IEnumerable<T> CopyList<T>(this IEnumerable source)
{
List<T> retVal = new List<T>();
foreach (object obj in source)
{
try
{
retVal.Add((T)obj);
}
catch { };
}
return retVal;
}
/// <summary>
/// Gibt den Index eines Elements zurück.
/// </summary>
public static int GetIndexOf<T>(this IEnumerable<T> source, T item)
{
int counter = 0;
foreach (T obj in source)
{
if ((object)obj == (object)item)
return counter;
counter++;
}
return -1;
}
/// <summary>
/// Zählt die Vorkommnisse eines Objekts in einer Aufzählung.
/// </summary>
public static int CountContains<T>(this IEnumerable<T> source, T item)
{
int retVal = 0;
foreach (T obj in source)
{
if (obj.Equals(item))
retVal++;
}
return retVal;
}
}
}
2 Kommentare zum Snippet