Possible Duplicate:
LINQ: Check whether an Array is a subset of anotherchar 배열에 다른 char 배열의 모든 요소가 포함되어 있는지 확인하는 방법은 무엇입니까?
LINQ를 사용하여 하위 집합 배열의 모든 요소가 수퍼 셋에 있는지를 찾는 방법이 있는지 확인하려고합니다.
{'o','k','w','r'}
이 유효하지 않을 것이지만 :
가{'w','o','k','r','d','o'}
다음은 유효 부분이 될 것이다 :이 상위로 예
가{'o','k','w','r','s'}
{'w','o','k','r','d','o','s'}
실제 수퍼는 문자 배열하다 나는 기억하고있다. 실제 서브 세트는 데이터베이스 테이블의 값입니다. 이 조건을 충족시키는 테이블에서 모든 값을 가져 오기 위해 EF에 LINQ를 사용하려고합니다. 이것은 내가 지금까지 시도한 것입니다 :
char[] letterArray = letters.ToCharArray();
return we.Words.Where(t => letterArray.Join(t.Word.ToCharArray(),
f => f,
s => s, (f, s) => new { s }).Count() == t.Word.Length
).Select(t => t.Word).ToArray();
을하지만 이것을 실행할 때 오류를 얻을 :
'Unable to create a constant value of type 'System.Char'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.'
이 오류 주위에 방법이 있나요? 제가 여기서 시도하고있는 것을 더 쉽게 할 수있는 방법이 있습니까?
쿼리로 인해 또는 LINQ to EF로 인해이 오류가 발생합니까? 쿼리하는 기본 데이터 저장소는 무엇입니까? 'ToCharArray()'등을 지원하지 않을 가능성이 높습니다. – mellamokb
단어가 배열에서 오는 경우 코드가 실제로 잘 작동합니다. 문제는 LINQ to EF에 대한 적절한 쿼리로 변환하려는 시도가 ToCharArray()와 같은 것을 처리 할 수 없다는 것입니다. 당신은 전체 단어 목록을 메모리로 가져 와서 거기에서 처리하거나, 필자가 일주일 전에 답변 한이 우연히 비슷한 질문과 같은 더 복잡한 솔루션을 구현해야합니다. http://stackoverflow.com/questions/10096744/puzzle-solving- 찾기 - 모두 - 단어 - - 큰 단어 - 인 - PHP에서/10096985 # 10096985 – mellamokb