【问题标题】:Convert comma separated twitter user-ids to corresponding screen names将逗号分隔的 twitter 用户 ID 转换为相应的屏幕名称
【发布时间】:2012-01-12 14:46:31
【问题描述】:

我正在开发一个推特应用程序。 Twitter Followers API 将一次返回 5000 个用户 ID 作为逗号分隔的字符串。我需要从 userlookup API 中提取屏幕名称、关注者数量和关注者数量。但是这个 API 会一次提取 100 个 id 的用户详细信息。

谁能帮我找到最有效/推荐的方法,将逗号分隔的字符串分成 100 个用户 ID 的批次并获取用户详细信息?

【问题讨论】:

  • 什么 API?你不能使用像linqtotwitter.codeplex.com这样的包装器吗?
  • @AmarPalsapure - 我使用的是 .net 3.5。
  • @gideon - 感谢 API。我需要调查一下。

标签: c# .net twitter


【解决方案1】:

这是你可以做的,分裂只发生一次。

   string ids = "YOUR IDs";
   int limit = 100;
   List<string[]> store = new List<string[]>();
   var split = ids.Split(',');
   int counter = 0;
   while (true) {
       var batch = string.Join(",", split.Skip(counter++ * limit).Take(limit));
       if (string.IsNullOrEmpty(batch)) break;
       //Make your call here
   }

【讨论】:

    【解决方案2】:

    我会使用 result.Split(",").Take(100) 这会将整个内容拆分为一个数组,然后获取前 100 个结果。如果这执行得不够快,您应该手动流式传输字符串以仅读取前 100 个逗号。这会稍微快一些,但在语法上没有那么优雅。在第一种情况下,您仍然应该能够在任何现代机器上在几分之一秒内处理 5000 个逗号分隔的元素。

    【讨论】:

    • 我也想过同样的办法。但我不确定性能。我会选择这种执行方式。感谢您的回答。
    • 如果您发现它不能满足您的性能需求,请尝试流式方法,这在技术上会更快
    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2018-04-19
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多