아래와 같이 사용자 지정 LINQ 확장 방법을 작성했지만 큰 결과를 얻으려면 최적화 할 수 있다고 생각합니다.이 LINQ 확장 방법 최적화 방법
이public static IEnumerable<T> OrderByAncesty<T>(this IEnumerable<T> source, Func<T, DateTime> dateSelector, Func<T, float> scoreSelector)
{
var original = source.ToList();
var maxDate = source.Max(dateSelector);
var list = from p in original
let date = dateSelector(p)
let score = scoreSelector(p)
let date1 = date.ToOADate()
let date2 = maxDate.ToOADate()
let ancesty = (1 - (float)date1/(float)date2) * score
select new
{
TObject = p,
Ancesty = ancesty
};
return list.OrderBy(p => p.Ancesty).Select(p => p.TObject);
}
왜 'Func'대신 표현식을 사용하고 있습니까? –
그래, 나도 모르겠다 ... 나는 Func, 나는 내 질문을 업데이 트하려고 해요 –