ExtensionMethod.NET Home of 876 C#, Visual Basic, F# and Javascript extension methods

ToList<T>(Func<object, T> func)

Converts an array of any type to List<T> passing a mapping delegate Func<object, T> that returns type T. If T is null, it will not be added to the collection. If the array is null, then a new instance of List<T>() is returned.


public static List<T> ToList<T>(this Array items, Func<object, T> mapFunction)
    if (items == null || mapFunction == null)
        return new List<T>();            

    List<T> coll = new List<T>();
    for (int i = 0; i < items.Length; i++)
        T val = mapFunction(items.GetValue(i));
        if(val != null)
    return coll;


--> Make another extension method

public static List<T> ToList<T>(this object[] items)
            return items.ToList<T>(o => { return (T)o; });

Reduces this : http://extensionmethod.net/Details.aspx?ID=351

To this:

public static List<T> EnumToList<T>() where T : struct
            return Enum.GetValues(typeof(T)).ToList<T>(enumVal => { return (T)Enum.Parse(typeof(T), enumVal.ToString()); });

--> Use in Linq

var myItems = from i in array.ToList<MyType>( o => { return (MyType)o; }) select i;

Author: James Levingston

Submitted on: 19 okt 2010

Language: C#

Type: System.Array

Views: 10889