LINQ가 주어진 목록의 상위 n %를 선택할 수있는 방법을 찾으려고했습니다. 가장 가까운 필자는 TOP PERCENT SQL 문과 비슷하게 작동하지만 퍼센트를 지원하지 않는 take 문을 사용합니다. 나는 명백한 무엇인가 놓치고있다라고 확신한다. 그러나 나는 단지 그것을 볼 것 같지 않다. 그것은 것입니다 그합니다 (Count()
방법 사용) IEnumerable<T>
와 함께 작동 할 수 있음을LINQ를 사용하여 목록의 상위 N %를 얻습니다.
public static IEnumerable<T> TakePercent<T>(this ICollection<T> source, double percent)
{
int count = (int)(source.Count * percent/100);
return source.Take(count);
}
참고 :하지만,
http://stackoverflow.com/questions/470339/linq-version-of-top-percent?rq=1 – Patashu
직접적인 방법은 없지만 'Count()'를 사용하여 총 항목 수를 확인할 수 있습니다 , 그리고 나서'Take()'를 사용하고, 매개 변수는'(desiredPercentage * totalItems)/100'이다. – dlev