2015-01-07 2 views
0

저는 linq에 새로운 브랜드이며 쿼리에 대한 도움이 필요합니다. 데이터 테이블에 3 개의 열이 있습니다. col3에서 고유 값의 수를 가져와야합니다. col1과 Col2에는 특정 값이 들어 있습니다. 여기 내가 시도한 코드의 마지막 부분이지만 작동하지 않습니다. 누군가 날 도와 줄 수 있니?C# LINQ select, Where, Count 및 Distinct가있는 Lambda 쿼리

감사

AD = dt.AsEnumerable() 
    .Where(x => x.Field<string>("Col1").Equals("Value1") 
      || x.Field<string>("Col2").Equals("Value2")) 
    .Select(s => s.Field<string>("Col3") 
    .Distinct().Count()); 

답변

2

내가 .Select(s => s.Field<string>("Col3")에서 닫는 괄호를 누락이 시도 :

AD = dt.AsEnumerable() 
    .Where(x => x.Field<string>("Col1").Equals("Value1") 
      || x.Field<string>("Col2").Equals("Value2")) 
    .Select(s => s.Field<string>("Col3")) // <-- add this 
    .Distinct().Count(); // <-- remove this 
+0

이 방법이 효과적입니다. 감사! – user2219930

+0

@ user2219930 : 코드가 컴파일되었지만 뭔가 다른 점을주의하십시오 : 문자열 필드 'col3'의 고유 문자 수를 선택했습니다 ;-) –

0
var q1 = (from persons in _db.Table<Person>() 
      where persons.firstName==fname && persons.lastName==lname group 
persons.age by persons.age).Count(); 

를 내가 sqlite가 그물을 사용하여 일부 "테스트"경우에이 테스트했습니다 ' 라이브러리 - 작동하는 것 같습니다. 이미 해결책이 있지만 - 다른 스타일을 사용하고 있으므로 여기에 게시하기로했습니다.