C# 林克把推特的成绩限制在一周之内,如何超越呢?

C# 林克把推特的成绩限制在一周之内,如何超越呢?,c#,twitter,linq-to-twitter,C#,Twitter,Linq To Twitter,下面的代码用于获取标签中的所有tweet。如果你尝试了不同的标签,你会有不同的结果,因为上周推特的数量。该问题与15分钟的极限速率时间无关。我已经试着推迟这个功能。在我得到这个标签中的第一条tweet之前,我怎么能超过第一周对所有tweet的限制 private List<Status> statusList= new List<Status>(); private ulong sinceID=1; private ulong maxID

下面的代码用于获取标签中的所有tweet。如果你尝试了不同的标签,你会有不同的结果,因为上周推特的数量。该问题与15分钟的极限速率时间无关。我已经试着推迟这个功能。在我得到这个标签中的第一条tweet之前,我怎么能超过第一周对所有tweet的限制

 private List<Status> statusList= new List<Status>();
        private ulong sinceID=1;
        private ulong maxID;        

        public void GetMostRecent200HomeTimeLine()
        {
            var twitterContext = new TwitterContext(authorizer);
            var tweets = from tweet in twitterContext.Status
                         where tweet.Type == StatusType.Home && tweet.Count == 200
                         select tweet;
            currentTweets = tweets.ToList();
        }


        public bool TAsyncSearchTag(string tag)
        {
            var twitterContext = new TwitterContext(authorizer);

            Search searchResponse;
            try
            {
                do
                    {    
                    searchResponse =
                        (from search in twitterContext.Search
                         where search.Type == SearchType.Search &&
                         search.ResultType == ResultType.Mixed &&
                         search.Query == tag &&
                         search.Count == 100 &&
                         search.SinceID == sinceID &&
                         search.MaxID == maxID
                         select search)
                         .FirstOrDefault();

                    if (searchResponse != null && searchResponse.Statuses.Count > 0)
                            {
                                var tweets = from tweet in searchResponse.Statuses
                                         select tweet;
                                statusList.AddRange(tweets);
                                maxID = searchResponse.Statuses.Min(x => x.StatusID) - 1;
                            }

                        } while (searchResponse.Statuses.Count != 0);
                return true;      
                }
            catch (Exception e)
                {
                MessageBox.Show(e.Message);
                return false;
                }
        }

        public List<Status> GetAllTweets(string tag)
        {
            var twitterContext = new TwitterContext(authorizer);
            var searchResponse =
                (from search in twitterContext.Search
                 where search.Type == SearchType.Search &&
                 search.ResultType == ResultType.Mixed &&
                 search.Query == tag &&
                 search.SinceID == sinceID &&
                 search.Count == 100
                 select search)
                 .FirstOrDefault();

            var tweets = from tweet 
                             in searchResponse.Statuses
                             select tweet;
            statusList.AddRange(tweets);
            maxID = searchResponse.Statuses.Min(x => x.StatusID) - 1;

            bool tester = TAsyncSearchTag(tag);

            MessageBox.Show("done   " + statusList.Count.ToString() + "  -  " + statusList.Last().StatusID.ToString());

            if (statusList != null)
                return statusList;

            return null;
        } 
private List statusList=new List();
私人乌龙sinceID=1;
私用乌龙maxID;
public void GetMostRecent200HomeTimeLine()
{
var twitterContext=新twitterContext(授权人);
var tweets=来自twitterContext.Status中的tweet
其中tweet.Type==StatusType.Home&&tweet.Count==200
选择tweet;
currentTweets=tweets.ToList();
}
公共布尔TAsyncSearchTag(字符串标记)
{
var twitterContext=新twitterContext(授权人);
搜索响应;
尝试
{
做
{    
搜索响应=
(来自twitterContext中的搜索。搜索
其中search.Type==SearchType.search&&
search.ResultType==ResultType.Mixed&&
search.Query==标记&&
search.Count==100&&
search.SinceID==SinceID&&
search.MaxID==MaxID
选择(搜索)
.FirstOrDefault();
if(searchResponse!=null&&searchResponse.Statuses.Count>0)
{
var tweets=来自searchResponse.status中的tweet
选择tweet;
statusList.AddRange(tweets);
maxID=searchResponse.Statuses.Min(x=>x.StatusID)-1;
}
}while(searchResponse.Statuses.Count!=0);
返回true;
}
捕获(例外e)
{
MessageBox.Show(e.Message);
返回false;
}
}
公共列表GetAllTweets(字符串标记)
{
var twitterContext=新twitterContext(授权人);
var搜索响应=
(来自twitterContext中的搜索。搜索
其中search.Type==SearchType.search&&
search.ResultType==ResultType.Mixed&&
search.Query==标记&&
search.SinceID==SinceID&&
search.Count==100
选择(搜索)
.FirstOrDefault();
var tweets=来自tweet
在searchResponse.status中
选择tweet;
statusList.AddRange(tweets);
maxID=searchResponse.Statuses.Min(x=>x.StatusID)-1;
布尔测试仪=TAsyncSearchTag(标签);
MessageBox.Show(“完成”+statusList.Count.ToString()+“-”+statusList.Last().StatusID.ToString());
如果(状态列表!=null)
返回状态列表;
返回null;
} 

我在试图确定真正的问题是什么时遇到了一些问题,但我假设您想要得到第一个结果,并且遇到了一些问题。对LINQ的理解是

LINQ使用延迟执行来迭代集合。它在开始迭代时获取结果集。然后应用过滤器。LINQtoSQL是一个轻微的例外,因为它内置了一个查询解析器。在LINQtoSQL中,它实际上编写查询,因此在调用中会对集合进行过滤。但是,在LINQ中{在这里选择您最喜欢的服务}您将在获得第一个结果之前获得所有结果

换句话说,您的问题可能与限制有关。尽管在LINQ中过滤到少量结果或单个结果,但仍会请求所有结果,然后LINQ会过滤整个结果集


我将从LINQ过滤器中分离数据的获取,您会发现工作得更好

我正在尝试将所有推文都放在某个标签中。我同意你的看法,Linq只是将我的请求过滤到上周的推文中。我想知道我怎么能得到比本周更多的信息——实际上这个标签中的所有tweet。问题是你正在生成一个可能有数百万条tweet的列表,尽管你的应用程序的用户不可能消费它们。你最好先过滤结果集,然后再组织它,这可以通过LINQ.Update完成,也可以不通过LINQ.Update完成。我发现twitter将他们的搜索限制为最多1周,以获取更多信息。用户或相关推文必须使用其他方法。