"... (a = 1) OR (a = 2)"와 같은 SQL 문자열을 작성할 수있는 방법이 Linq에 있습니까?Linq에서 "또는"와 동일한 의미() λ 식
답변
당신은 Where 절 (확장 메서드) 내에서 그것을 확실히 할 수 있습니다. 복잡한 쿼리를 동적으로 작성해야하는 경우 PredicateBuilder을 사용할 수 있습니다.
var query = collection.Where(c => c.A == 1 || c.B == 2);
아니면 .Where()
전화에 PredicateBuilder
var predicate = PredicateBuilder.False<Foo>();
predicate = predicate.Or(f => f.A == 1);
if (allowB)
{
predicate = predicate.Or(f => f.B == 1);
}
var query = collection.Where(predicate);
술어를 잘 사용한다! +1 : –
들어오는 매개 변수의 값에 따라 빌드 할 필요가있는이 기능은 훌륭했습니다. - 멋지다! – dadwithkids
매우 시원합니다. 그 부끄러운이 isnt는 표준으로 .NET 내부의 함수로 포함되어 있지 않습니다. – maxp
절 어디 당신은 하나의 표준 .NET 부울 연산자를 사용할 수 있습니다
MyDataSource.Where(data => data.a == 'a' || data.a == 'b')
나는 이것이 가장 간단하고 간단한 대답이라고 생각합니다. – user1477388
이것은 가장 간단한 대답입니다. – Eranda
하나의 솔루션이 될 수 있습니다 동적 Linq에 :
당신은 모두 같은를 사용 연산자는 정상적인 C#에서와 같이 ===> || 에 대한 "또는"& &에 대한 "와"등
var something = from s in mycollection
where s.something == 32 ||
s.somethingelse == 45
select s
나는이 방법을 선호한다, 그것은 자연스럽게 보인다. – nXqd
를 사용하여이 ||
, 표준 부울 '또는'연산자를 사용합니다.
var query = items.Where(item => (item == 1 || item == 2));
모든 호출은 원하는대로 부울 비교이므로 모든 조건부 논리로 작성할 수 있습니다.
이것은 .net에 내장되어 있습니다. 이전에는 그렇지 않은지 확실하지 않습니다. 기존 Linq 질의를 감안할 때 문자열 배열 (SearchStrings)을 취하는 where 절을 추가하고 검색 대상 컬렉션의 개체와 일치하는 항목이 있는지 확인할 수 있습니다. ToLower()를 사용하면 SQL 쿼리에서 대/소문자 구분을 피할 수 있습니다.
query.Where(i => SearchStrings.Any(s => i.ToLower().Contains(s.ToLower()));
당신은 컬렉션의 객체 배열에있는 모든 단어를 일치하여 '과'술어 같은 일을 할 수 있습니다.
query.Where(i => SearchStrings.All(s => i.ToLower().Contains(s.ToLower()));
이 예제에서는 컬렉션의 각 개체와 상관 관계가 있고, s는 SearchStrings 배열의 각 문자열과 상관 관계가 있습니다.
- 1. C#, λ 식, 여기서 오류가 있습니까?
- 2. Linq에서 엔터티에 여러 국가에 대한 람다 식
- 3. 추상 및 가상 동일한 의미?
- 4. λ 및 function javascript
- 5. 또는와 |와 | 사이의 차이 변수를 설정할 때
- 6. LINQ 식 반환 null
- 7. 의미
- 8. : -516는 의미
- 9. 탐색 식 트리
- 10. JS λ-함수 및 "상위 컨텍스트"변수
- 11. Cython에서 λ 함수를 사용할 때의 오류
- 12. 델파이 : 신경망 클래스 (TD-λ)의 EInvalidOp
- 13. setContextClassLoader 의미
- 14. _dopr의 의미
- 15. FIN_WAIT1의 의미
- 16. 의미 'z'?
- 17. setContextClassLoader 의미
- 18. SEQUENCE_NEXT_HI_VALUE의 의미
- 19. 던지기 의미
- 20. 'pagerror.gif'의 의미?
- 21. 나는 의미
- 22. 의미 someClass
- 23. doublerule의 의미
- 24. 는 의미
- 25. 을 의미?
- 26. XPG6의 의미
- 27. 의미 객체
- 28. 람다 식
- 29. glutGetWindow - 식
- 30. 식 혼합
나는'||'사용법을 알고 있고'a = a.where (hour => hour <20);와 같이 동적 인 것을 원한다고 가정합니다. if (weekend) a = a.where (hour => hour> 6);'. 더 명확하게 말하고 싶을 수도 있습니다 ... – Kobi