2017-10-29 3 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)); 

、第二に、私は、ビデオコンテンツとのつぶやきを除外しようとしています各mediaEntityにはvideoInfoプロパティがあります。 しかし、statusesコレクションのような複雑な構造に対して正しいlinqクエリを作成するのはいくらか難しいです。

答えて

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ですべてのつぶやきを最初にしたいと思うし、2番目のクエリで、CreatedAt Descendingで注文して10を取ることができます。

関連する問題