LINQ: GroupBy, 합계 및 개수
이 코드의 목표는 제품 컬렉션을 제품 코드별로 그룹화하고 제품 이름, 각 코드의 제품 수량, 각 제품의 총 가격이 포함된 객체를 반환하는 것입니다.
샘플 데이터에는 세 가지 제품이 포함되어 있습니다.
<code>{"p1", 6.5, "Product1"}, {"p1", 6.5, "Product1"}, {"p2", 12, "Product2"}</code>
예상 결과는 다음과 같습니다.
<code>Product1: count 2 - Price:13 (2x6.5) Product2: count 1 - Price:12 (1x12)</code>
그런데 코드에 의해 생성된 카운트 값이 올바르지 않아 각 제품마다 항상 1이 표시됩니다.
문제는 SelectMany() 메서드가 잘못 사용되었다는 것입니다. 코드는 표현식을 단순화하는 Select() 메서드를 사용해야 합니다.
<code>List<ResultLine> result = Lines .GroupBy(l => l.ProductCode) .Select(cl => new ResultLine { ProductName = cl.First().Name, Quantity = cl.Count().ToString(), Price = cl.Sum(c => c.Price).ToString(), }).ToList();</code>
이 수정으로 문제가 수정되고 원하는 카운트 값이 생성됩니다.
<code>Product1: count 2 - Price:13 (2x6.5) Product2: count 1 - Price:12 (1x12)</code>
위 내용은 LINQ GroupBy, Sum 및 Count를 올바르게 사용하여 제품 데이터를 집계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!