[SQL] 테이블의 한 필드를 기준으로 Linq에있는 고유
SQL테이블의 한 필드를 기준으로 Linq에있는 고유
내가 (그래서 테이블에서 전체 중복 기록을 필요로하지 않는다) 테이블의 한 필드를 기준으로 결과를 얻을 수 Linq에에 .distinct 사용하려합니다.
다음으로 나는 별개 사용하여 기본 쿼리를 작성 알고 :
var query = (from r in table1
orderby r.Text
select r).distinct();
하지만 난 r.text 중복되지 않는 결과를해야합니다.
해결법
-
==============================
1.이 시도:
이 시도:
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
이 뜻 그룹이 텍스트로 테이블 및 텍스트가 구별되는 행 그룹으로부터 얻어진 각각의 첫번째 행을 사용한다.
-
==============================
2.MoreLinq 당신이 사용할 수있는 DistinctBy 방법이 있습니다 :
MoreLinq 당신이 사용할 수있는 DistinctBy 방법이 있습니다 :
그것은 당신이 할 수 있습니다 :
var results = table1.DistictBy(row => row.Text);
다음과 같은 방법 (인수 검증의 짧은)의 구현은 다음과 같습니다
private static IEnumerable<TSource> DistinctByImpl<TSource, TKey>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer) { HashSet<TKey> knownKeys = new HashSet<TKey>(comparer); foreach (TSource element in source) { if (knownKeys.Add(keySelector(element))) { yield return element; } } }
-
==============================
3.당신이 원하는 경우로 사운드 :
당신이 원하는 경우로 사운드 :
table1.GroupBy(x => x.Text) .Where(g => g.Count() == 1) .Select(g => g.First());
텍스트 고유 곳 행을 선택합니다.
-
==============================
4.엔티티 프레임 워크와 System.NotSupported 예외에 리드 위의 다니엘 Hilgarth의 대답. 엔티티 프레임 워크로, 그것은되어야합니다 :
엔티티 프레임 워크와 System.NotSupported 예외에 리드 위의 다니엘 Hilgarth의 대답. 엔티티 프레임 워크로, 그것은되어야합니다 :
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
-
==============================
5.이 주제에 논의가 많이 있습니다.
이 주제에 논의가 많이 있습니다.
현재 위치 중 하나를 찾을 수 있습니다 :
가장 인기있는 제안 중 하나는 @Servy과 같은 매개 변수가 지적한 것처럼 람다 식을 복용 구별 방법이었다.
C 번호의 수석 건축가, 앤더스 헤 즐스 버그는 여기에 솔루션을 제안했다. 프레임 워크 디자인 팀은 람다 소요 구별 방법의 과부하를 추가하지 않기로 결정 이유도 설명.
-
==============================
6.내가 찾은 바로는, 쿼리는 대부분 정확합니다. 그냥 모든 "r.Text을 선택"으로 "를 선택 R"을한다 변경하고 그 문제를 해결해야한다. 이 MSDN이 작동하는 방법을 문서화하는 방법이다.
내가 찾은 바로는, 쿼리는 대부분 정확합니다. 그냥 모든 "r.Text을 선택"으로 "를 선택 R"을한다 변경하고 그 문제를 해결해야한다. 이 MSDN이 작동하는 방법을 문서화하는 방법이다.
전의:
var query = (from r in table1 orderby r.Text select r.Text).distinct();
-
==============================
7.
data.Select(x=>x.Name).Distinct().Select(x => new SelectListItem { Text = x });
-
==============================
8.이 코드를 시도 :
이 코드를 시도 :
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
-
==============================
9.이 시도 할 수 있습니다 : table1.GroupBy (t => t.Text) ALL 기타 사항 서보 -OFF (모양 => shape.r)를) 고유 ();.
이 시도 할 수 있습니다 : table1.GroupBy (t => t.Text) ALL 기타 사항 서보 -OFF (모양 => shape.r)를) 고유 ();.
from https://stackoverflow.com/questions/14321013/distinct-in-linq-based-on-only-one-field-of-the-table by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 열 함유 쉼표의 값이 값을 구분 어디에 (0) | 2020.04.06 |
---|---|
[SQL] 표 SQL 서버에 XML을 변환 (0) | 2020.04.06 |
[SQL] 큰 성능 차이에 의해 구별 VS기를 사용할 때 (0) | 2020.04.06 |
[SQL] SQL 서버 2008 : 어떻게 사용자 이름에 권한을 부여합니까? (0) | 2020.04.06 |
[SQL] SQL : 대 BETWEEN <= 및> = (0) | 2020.04.06 |