람다 표현식으로 지정된 속성에 값을 할당하는 일반적인 방법을 찾으려면 아래 예제 코드를 참조하십시오. ConverToEntities 메소드 모양과 어떻게 호출 될까요?표현식/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();
}
}
입니까? .. 당신이 실제로 원하는 것은 public static리스트입니다. List ConvertToEntities ... 또는 아닙니다? –
ConvertToEntities는 일반적인 메서드에서의 시도입니다. 구문이 올바르지 않습니다.이 메서드를 일반화하려고합니다. –
해결책이 주어지면, 닷넷과 함께 제공되는'.Select'는 코드가 적습니다. –