에 따라 부분 집합하기 내가 개체라는 이름의 항목이 (Item의 Size 속성)이 특정 수 (임계 값)를 초과하지 않습니다.LINQ하십시오 <code>List<Item></code></p> <p>에서</p> <pre><code>public class Item { public Guid Id { get; set; } public long Size { get; set; } } </code></pre> <p>내가 필요하면이 목록을 조회하고 크기를 누적 행의 수를 반환하는 것입니다 : 크기
그런 다음 이러한 요소를 처리하여 원래 목록에서 제거하고 모든 요소가 처리 될 때까지 동일한 쿼리를 사용하여 다음 요소를 가져올 수 있습니다.
예 목록 :
는Id Size
----------------
1 10
2 13
3 5
4 30
5 10
내 원하는 임계 값들이 누적 크기가 25을 초과하지 않기 때문에 ID 1 & 2 항목을 반환해야합니다 (25)
쿼리의 최대 크기입니다 말 그런 다음이 두 값을 제거합니다. 다음에 쿼리를 반환해야합니다 3 & 5. ID 4는 25를 초과하므로 절대로 반환하지 않아야합니다.
아이디어가 있으십니까?
당신이 행 번호 누적 size''에 의해 무엇을 의미? – sll
"cumulated"란 지금까지 선택된 모든 행에서 모든 Size 속성의 * total *을 의미합니까? –
난 그냥 루프를 작성합니다. Take (외부) 누적기를 포함하는 TakeWhile 접근법이있을 수 있지만, Linq가 전통적으로 의도했던 바깥에서 작업하고 있습니다. 아니요, 루프를 작성하고 합계를 유지합니다. –