2010-01-15 4 views
1

이런 식으로 보이는 쿼리가 있습니다 ...LINQ, 쿼리에서 string [] 사용

string value 
      return DataContext.Tags.Where(t => t.Keys.Any(k => k.Ring.RingName == category)) 
       .Where(t => t.Keys.Any(k => k.Ring.Keys.Any(c => c.Tag.TagName == value))); 

잘 작동합니다. 그러나 그것은 뭔가 특별한 것을해야합니다. 'value'문자열은 실제로 문자열이 될 것입니다 [] - TagName이이 문자열 []에서 발견 된 것과 일치하는 경우 기본적으로 마지막 람다를 변경하는 방법이 있습니까?

+0

왜'Where' 호출을 결합하지 않습니까? – SLaks

+0

정확히 어떻게 할 수 있습니까? – Ciel

+0

'.Where (t => t.Something && t.SomethingElse) ' – SLaks

답변

3

: (테스트되지 않은)

string[] values 
return DataContext.Tags.Where(t => t.Keys.Any(k => k.Ring.RingName == category)) 
         .Where(t => t.Keys.Any(k => k.Ring.Keys.Any(c => values.Contains(c.Tag.TagName)))); 
+1

당신은 지금까지 살았던 가장 훌륭한 사람 일 것입니다. 정말 고맙습니다. – Ciel

+0

string []에는 Contains 메서드가 없습니다. 이상한, 어쩌면 그것은 intellisense에 나타나지 않습니다. – BarrettJ

+1

@BarretJ : LINQ가 하나를 추가합니다. – SLaks

0

당신은 값의 선언을 변경할 수없는 경우 C => (새 목록 (값)) 포함 (c.Tag.TagName)

.

할 수 있으면 List로 선언 할 수 있습니까?

관련 문제