나는 linq에서 groupby를하려고 애 쓰고있다. 기본적으로리스트를 가지고있다.LINQ : Groupby를 이해하고 실행하여 고유 한 행을 다시 가져 옵니까?
항목은 그래서 따라서 50 그렇게 포드 몬데오는
내 쿼리, 더 (아직 :-)) 아주 간단 조인되지만 50 포드 몬데오 등의 목록을 다시 제공, 내가 그것을 원하지 않았다가있는 차량입니다 그들을 그룹화하여 단지 1 개의 엔트리 만 있도록합니다.
설명 만 선택하고 ID가 다른 ID를 선택하지는 않습니다.하지만 LinqPad에서 desc를 반환하고 편지의 설명 - 편지에서 모두 동일한 50 개의 ford mondeos를 볼 수 있습니다.
내가 뭘 잘못하고 있니?
from v in dc.Vehicles
group v by v.Description into g1
from y in g1
orderby y.Description
select new
{
Desc = y.Description
};
편집이
그것은 지금이이 일을 위해 내 테스트했다, 각 포드 몬데오 단지 한 기록을 찾아온다하지만 난 이것에 확장해야 다시는 다시 한 기록을 가지고해야 나는 그들이 모든 문, categor, 모델 번호 등의 같은 번호가 확인 것처럼 포드 몬데오 각 있습니다 .. 물론
from v in dc.Vehicles
group v by v.Description into g1
orderby g1.Key
select new
{
Desc = g1.Key,
CategoryId = g1.CategoryId,
MakeId = g1.MakeId,
ModelId = g1.ModelId,
Doors = g1.Doors,
};
위는 다른 모든 필드는 카테고리 ID를 즉 찾을 수없는 작동하지 않습니다 ... 나는 gr을 분리하려고했다. oup하여 다른 필드에 쉼표를 추가하십시오.
키가 약간 혼란 스럽 습니다만 이것이 키라는 것을 이해합니다. 그러나 1 개 이상의 필드를 그룹화하면 잠재적으로 더 많은 것을 가질 수 있습니다 1 키보다 ..
아이디어가 있으십니까?
감사합니다 존, 큰 도움! .이 훌륭한 일을, 그것은 모든 포드 mondeos에 대한 1 기록을 가져 오면, 난 완전히 키를 이해하지 않지만 SQL에서 Linq에서 1 필드보다 내 그룹화 할 수 있습니까? 그렇다면 핵심은 무엇입니까? 내가하는 일을 보여주기 위해 내 질문을 업데이트 할 것입니다. –
질문 업데이트 –
나는 이것을 작동시키지 않았지만 이것이 최선의 방법인가요? 선택 내에서 선택 ?? CategoryId = g1.Select (x => x.CategoryId). 나는 그것이 작동했음을 인정해야한다. 그래서 나는 grouping으로 필드를 가져 오기 위해 select 메서드를 호출해야만한다 ?? 그리고 당연히 5 dorrs와 1로서 1 개의 mondeo가 4 개의 문을 가지고 있지만 같은 기술을 가지고 있다면 - 나는 기술적으로 두 개의 레코드를 필요로 할 것입니다. 그것들은 서로 다르므로 여러분은 1 개 이상의 필드에서 그룹화 할 수 있어야합니다. 나는 아직도 SQL 세계에 머물러 있다고 생각한다 :-) !!! –