Общий метод установки значения свойства с помощью выражений / лямбда

Я пытаюсь найти общий способ присвоения значений свойству, продиктованному лямбда-выражением, посмотрите на приведенный ниже пример кода, как будет выглядеть подпись для метода ConverToEntities и как это будет называться?

static void Main()
{
    List<long> ids = new List<long> {1, 2, 3};

    //Non generic way
    List<Data> dataItems = ids.ConvertToDataItems();

    //Generic attempt!!
    List<Data> differntDataItems =
        ids.ConvertToEntities<Data>( p => p.DataId );
}

public class Data
{
    public long DataId;
    public string Name;
}

public static class ExtensionMethods
{
    public static List<Data> ConvertToDataItems(this List<long> dataIds)
    {
        return dataIds.Select(p => new Data { DataId = p }).ToList();
    }

    public static List<T> ConvertToEntities<TProp>(
        this List<long> entities, Func<TProp> lambdaProperty )
    {
        return entities.Select(p => new T {lambdaProperty} ).ToList();
    }
}
5
задан M4N 9 December 2012 в 23:40
поделиться