数组问题。关于如何解决我的问题的任何想法?

时间:2010-08-09 05:14:47

标签: c#

我有大约1000个数组元素。元素由每个元素1个用户ID组成。

我想要做的是缩短此数组,以便每个元素包含每个元素10个用户ID,每个元素的每个用户ID由逗号分隔。

当前数组:

324234
2342234
0983242
....

新数组:

324234,2342342,234234234,234234,5436436,457456,456456,234234,234234,546456436
34234,23423426,54645654,34532423,23423432,4634634,2342342,234234,264353,345345
....

你可能会问为什么要这样做?!

好吧,我正在发送ID给帖子请求。该请求接受1个ID或更多。为了缩短我希望按照每个请求发送10个ID的请求数量。

关于如何将旧数组分组到新的较短数组中的任何想法?

2 个答案:

答案 0 :(得分:2)

那你为什么不把它们作为CSV发送一次呢?

稍后编辑:

注意:未经过测试的代码

int amountPerCall = 10;
List<string> ids = new ArrayList<string>();
// add ids...
for (int i = 0 ; i < ids.Count; i += amountPerCall) {
    Send(String.Join(",", ids, i, amountPerCall));
}

答案 1 :(得分:0)

您可以使用MoreLINQBatch方法:

IEnumerable<string> batches = input.Batch(10, ids => string.Join(",", ids));

如果您不想使用MoreLINQ本身,您可以查看代码以了解它的作用。

(根据您使用的.NET版本,您可能需要将输入转换为string.Join到一个数组中..NET 4为该方法引入了一些有用的新重载。)