2015-01-16 3 views
-3

각 그룹에서 Get 5 Object를 표시하려고 시도합니다. 이 같은 코드를 시도 :C# Linq 각 그룹에 대해 Object를 가져옵니다.

var BBS = (from bb in db.Object 
      where SubjectList.Contain(bb.Type) 
      select new ObjectModel { 
       Subject = bb.Subject, 
       CDate = bb.CDate 
      }).GroupBy(a => a.BBSTypeSubject).Take(5); 

을했지만 작동하지 않습니다. 그리고 나서 Foreach를 사용하여 시도합니다.

+1

take (5)는 Take (5)와 같이 간단 할 수 있습니까? – kenny

+0

'포함 ','받아 '? 서식? . 시간을 내서 좋은 질문을하는 것은 어떻습니까? – EZI

+3

"작동하지 않는다"는 것은 무엇을 의미합니까? 오류가 있습니까? 던져지는 예외가 있습니까? 명확히하십시오. – pstrjds

답변

0

우선하는 것이 C#을 실현해야한다, 대소 문자를 구분합니다. 하지만 this overloadGroupBy 인 대신이 문제를 쉽게 해결할 수 있습니다.

var BBS = (from bb in db.Object 
      where SubjectList.Contains(bb.Type) 
      select new ObjectModel { 
       Subject = bb.Subject, 
       CDate = bb.CDate 
      }).GroupBy(a => a.BBSTypeSubject, (k, g) => g.Take(5)); 

두 번째 매개 변수를 사용하면 각 그룹에 대해 반환 할 결과 개체를 지정할 수 있습니다. 이 경우 그룹의 처음 5 개 항목을 가져 와서 대신 반환합니다.

0

새 ObjectModel을 선택하면 BBSTypeSubject라는 속성이 없습니다. 그것을 포함시켜야합니다. 당신이 가 제대로 TakeContains 같은 함수 이름 철자를 필요하므로 그래서,

select new ObjectModel { 
Subject = bb.Subject, 
CDate = bb.CDate, 
BBSTypeSubject= ??? 
} 
+0

내가 이것을 입력하면 내 잘못이야. 내 코드에서 값을 지정했습니다. – yeong

관련 문제