2017-09-11 10 views
1

이 주제에 대한 다른 스레드를 기반으로하고 싶은 일에 대한 해결책이었을 것이라고 생각했던 것 (목록에서 특정 수의 항목 반환) 하지만 내 구문이 조금이라고 생각하고 내가 취한 항목을 합산하는 것을 허용하지 않습니다.linq을 사용하는 목록의 첫 3 항목 평균 평균

public decimal average_of_items_examples(List<Car> cars) 
     { 
      if (cars == null) 
      { 
       return 0; 
      } 
      else if (cars.Count == 0) 
      { 
       return 0; 
      } 
      else 
      { 
       return cars.OrderBy(x => x.SuggestedRetailPrice).Take(3).Average(); 
      } 
     } 

난 어떤 도움을 주셔서 감사하고 설명을 주셔서 감사합니다 : 여기

내가 가진 것입니다.

편집 : 죄송합니다 왜 내가 OrderBy 부분을 추가하는 것을 잊었습니다. 나는 단지 3 대의 덜 비싼 차의 평균을 원한다.

참고 : 운동을 작성한 방법이므로 "십진법"유형을 변경할 수 없습니다.

cars.OrderBy(x => x.SuggestedRetailPrice).Take(3).Select(z => z.SuggestedRetailPrice).Average(); 

과 :

cars.Select(z => z.SuggestedRetailPrice).OrderBy(x => x).Take(3).Average(); 

것은 할 것

+0

평균은 무엇입니까? SuggestedRetailPrice? –

+0

예. 나는 이것이 십진법의 유일한 논리적 인 매개 변수라는 것을 믿습니다. – William

+0

미안 나는 목록에서 가장 비싼 3 대의 자동차의 평균 가격만을 원한다는 명확한 정보를 추가했다. 따라서 나의 원래 "OrderBy" – William

답변

3

모두 이후의 평균을 얻기 위해 원하는 속성을 지정해야 당신이 필요로하는 것.

둘 다 기본적으로 같습니다.

3
.Average(x => x.SuggestedRetailPrice) 

당신은 당신이 컬렉션이 Car 객체