2011-09-08 4 views
0

고유하지 않은 Selectlist 항목 목록을 가져 와서 고유 한 SelectListItem 목록을 제공하는 방법론이 가장 어려워졌습니다. 내가 뭘하려이 ... 코드를 어떻게 LINQ를 사용하려고 시도하고하는 것은 내가에 가서 똑같은 목록을 보려면이 방법은이linq을 사용하는 고유하지 않은 SelectListItems 목록에서 고유 한 SelectListitem 컬렉션

var queryResults = 
    from p in PatientList 
    group p by p.Value into g 
    select new SelectListItem { Text= g.Key, Value= g.Max(p => p.Value.Split('|')[1]) }; 

했다. 지금 linq에 관해서 나는 완전한 초심자 다. 나는 linq XML 및 linq SQL 수행 한 있지만 컬렉션 Linq 언급하는 것 같다 ...

어떤 도움?

+0

일부 사용에 대한 질문이있을 수 있습니다. http://stackoverflow.com/questions/1300088/distinct-with-lambda –

답변

2

아마도 Distinct()을 사용할 수 있습니까? 독창성 검사에 대해 IEqualityComparer<T>을 선택적으로 사용하여 시퀀스에서 고유 한 값을 반환합니다.

+0

나는 그런 생각을하지 못했습니다. 저도 한번 시도해 보도록하겠습니다. – SoftwareSavant

+0

내가 아는 한 Distinct()는 콜렉션의 객체에 대한 해시 코드를 검사하고이를 기반으로 필터링합니다. 컬렉션의 중복 SelectListItems이 실제로 동일한 객체가 아니라 다른 객체가 동일한 것으로 보이는 경우 동일한 목록이 표시됩니다. –

+0

MoreLinq (http://code.google.com/p/morelinq/)는 비교 람다를 전달할 수있는 DistinctBy 메서드를 제공합니다. items.DistinctBy (c => c.Value) –

관련 문제