使用LinqToTwitter排除转推

Tay*_*şar 3 twitter linq-to-twitter

我的LinqToTwitter类不能排除转推.

var srch = (from search in twitterCtx.Search where search.Type == SearchType.Search && search.Query == term && search.Count == 100 select search).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

没有选择search.IncludeRetweets==false.

我怎么能用它进行搜索?我应该尝试另一堂课吗?

Joe*_*ayo 6

Twitter API不提供该选项,因此LINQ也不提供Twitter.也就是说,这是你可以做的:

  1. 正常执行搜索查询.它将包含转推.
  2. 使用where子句对结果执行LINQ to Objects查询,该子句设置RetweetedStatus.StatusID == 0的条件,如下所示:

    var nonRetweetedStatuses =
        (from tweet in searchResponse.Statuses
         where tweet.RetweetedStatus.StatusID == 0
         select tweet)
        .ToList();
    
    Run Code Online (Sandbox Code Playgroud)

我建议使用这样的where子句的原因是因为LINQ to Twitter实例化了RetweetedStatus的状态,无论它是否存在.但是,该Status的内容是每个属性类型的默认值.由于有效转发的StatusID永远不会为0,因此可行.你也可以过滤另一个字段,如Text == null,它仍然可以工作.