linqtotwitter 获取没有视频的推文
linqtotwitter get tweets without video
我正在尝试通过将 linqtotwitter 与 c# 结合使用来获取推文,并且有一项任务是获取最后 10 条没有视频内容的推文。
首先,我像这样检索了最后 10 个状态:
var srch = Enumerable.SingleOrDefault((from search in
twitterContext.Search
where search.Type == SearchType.Search &&
search.Query == hashTag &&
search.Count == 10
select search));
其次,我试图排除带有视频内容的推文:
var result = srch.Statuses.ToList()
.Where(item => item.Entities.MediaEntities.
Where(innerItems => innerItems.VideoInfo.Duration == 0)); // shows error
status
包含entities
个集合,其中每个entity
包含mediaentities
个集合,其中每个mediaEntity
有videoInfo
属性.
但是要为像 statuses
集合这样的复杂结构编写正确的 linq 查询有些困难。
我认为您只需要熟悉 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 排序并取 10.
我正在尝试通过将 linqtotwitter 与 c# 结合使用来获取推文,并且有一项任务是获取最后 10 条没有视频内容的推文。 首先,我像这样检索了最后 10 个状态:
var srch = Enumerable.SingleOrDefault((from search in
twitterContext.Search
where search.Type == SearchType.Search &&
search.Query == hashTag &&
search.Count == 10
select search));
其次,我试图排除带有视频内容的推文:
var result = srch.Statuses.ToList()
.Where(item => item.Entities.MediaEntities.
Where(innerItems => innerItems.VideoInfo.Duration == 0)); // shows error
status
包含entities
个集合,其中每个entity
包含mediaentities
个集合,其中每个mediaEntity
有videoInfo
属性.
但是要为像 statuses
集合这样的复杂结构编写正确的 linq 查询有些困难。
我认为您只需要熟悉 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 排序并取 10.