2012-05-26 2 views
3

친구 JsonArray에서 Facebook C# SDK를 사용하여 linq 쿼리를 수행하려고합니다. 그래서, 내가 시도 : Facebook C# SDK에서 JsonArray에서 linq 쿼리를 수행하는 방법은 무엇입니까?

var facebook = new FacebookWebClient(); 

dynamic facebookFriends = facebook.Get("me/friends"); 

JsonArray data = facebookFriends.data; 

var friends = data.Where<JsonObject>(d => d["name"].ToString().StartsWith("D")); 

그러나

마지막 줄에서 나는 다음과 같은 컴파일 오류 얻을 :

" 'Facebook.JsonArray는'어디 '에 대한 정의 및 최고의 확장 메서드 오버로드'를 포함하지 않습니다 System.Linq.ParallelEnumerable.Where (System.Linq.ParallelQuery, System.Func) '잘못된 인수가 있습니다. "

그래서 어떻게 할 수 있습니까?

답변

4

JsonArray은 이 아니기 때문에 이므로 Where<JsonObject>을 사용할 수 없습니다.

한편

, 당신은 Where<> 확장 방법을 사용하여 유형을 지정할 필요가 없습니다 :

var friends = data.Where(d => d["name"].ToString().StartsWith("D")); 

이 람다 식 내부 d 변수가 JsonValue이 될 것.

var friends = data.OfType<JsonObject>().Where(d => d["name"].ToString().StartsWith("D")); 
+0

을 난에 다음과 같은 컴파일 오류가 발생했습니다 첫 번째 옵션으로 : 당신은 (그렇게된다면하지만 난 정말 테스트하지 않았습니다) 당신이 Where 전에 OfType 방법을 추가해야 만 이상 JsonObject 요소를 반복하려는 경우

"d ["name "]": "[ ']을 (를) 사용하여 인덱싱을'object '유형의 표현식에 적용 할 수 없습니다." 두 번째 방법은 효과가 있습니다! = D –

관련 문제