Sto cercando di trovare un modo generico per assegnare valori a una proprietà dettato da un'espressione lambda, guardare il codice riportato di seguito, come sarebbe la firma per i ConverToEntities aspetto del metodo e come si chiamerebbe?metodo generico per impostare il valore di una proprietà utilizzando le espressioni/lambda
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();
}
}
Qual è List tho? .. Immagino che quello che vuoi sia statico pubblico Elenco ConvertToEntities ... o no? –
I ConvertToEntities è un tentativo di un metodo generico; è sintatticamente sbagliato, sto cercando di rendere questo metodo generico; –
Date le soluzioni, il '.Select' fornito con .Net è meno codice ... –