2017-10-29 4 views
1

linqtotwitter를 C#으로 사용하여 트윗을 얻으려고하고 있으며 비디오 내용없이 마지막 트윗 10 개를 얻는 작업이 있습니다. 이 같은 먼저 내가 검색 한 지난 10 개 상태 : linqtotwitter 비디오없이 트윗 잡기

var result = srch.Statuses.ToList() 
        .Where(item => item.Entities.MediaEntities. 
          Where(innerItems => innerItems.VideoInfo.Duration == 0)); // shows error 

status

entitymediaentities 수집을 포함 entities 모음을 포함

var srch = Enumerable.SingleOrDefault((from search in 
            twitterContext.Search 
             where search.Type == SearchType.Search && 
              search.Query == hashTag && 
              search.Count == 10 
             select search)); 

둘째는 내가 비디오 컨텐츠와 트윗을 제외하는 것을 시도하고있다 각 mediaEntityvideoInfo 속성을가집니다. 그러나 올바른 구조를 복잡한 linq 쿼리를 작성하려면 statuses 컬렉션과 같은 몇 가지 어려움이 있습니다.

답변

1

나는 linq에 익숙해 질 필요가 있다고 생각한다. 그럼에도 불구하고 여기에 당신은 아마 찾고있는 무엇 : 내가 의도 한 결과로 추측하고있어

var srch = twitterContext.Search 
      .FirstOrDefault(search => 
       search.Type == SearchType.Search && 
       search.Query == hashTag); 

var srchWithoutVideo = srch?.Statuses?.Where(status => 
       status.Entities.MediaEntities.All(entity => entity.VideoInfo.Duration == 0)) 
      .OrderByDescending(status => status.CreatedAt) 
      .Take(10); 

- 검색에서 카운트를 이동합니다. 나는 당신이 hashTag에 의해 모든 트윗을 먼저 원한다고 생각하고 두번째 쿼리에서 CreatedAt Descending과 Descending 10으로 필터링하고 필터링 할 수 있다고 생각합니다.