c# 初入门,求问拆分数据的问题,

2015-06-18 11:18:28 +08:00
 guanyongxin

比较我现在的string数组里有2W条数据,我想每1000条一组拆出来,处理,我要怎么做呢...脑洞好闭塞啊...

2423 次点击
所在节点    微软
5 条回复
mwylaoma
2015-06-18 12:45:25 +08:00
split,for循环,if == 1000,处理
zkd8907
2015-06-18 12:51:57 +08:00
同一楼。如果想花式一点的也可以考虑用linq2object

var all = new string[20000];
string[] items;

for (var i = 0; i < 20; ++i)
{
items = all.Skip(i).Take(1000).ToArray();
}
guanyongxin
2015-06-18 15:11:56 +08:00
public static void SplitStr(int count,ArrayList list)
{
try
{
if (count > list.Count) { PutInHtml((string[])list.ToArray(typeof(string))); return; }
Random r = new Random();
int z = list.Count / count;
ArrayList yu = new ArrayList();
int start = list.Count;
for (int i = 0; i < start; i++)
{
yu.Add(list[i]);
list.RemoveAt(i);
if (list.Count % count == 0) { PutInHtml((string[])yu.ToArray(typeof(string))); Thread.Sleep(r.Next(1000, 4500)); break; }
}
var all = (string[])list.ToArray(typeof(string));
string[] items;
string info = string.Empty;
for (var i = 0; i < z; ++i)
{
items = all.Skip(i).Take(count).ToArray();
PutInHtml(items);
Thread.Sleep(r.Next(1000, 4500));
}
}
catch { }
}

这样处理了,先把余数解决,之后可以整除的就用楼上的方法
caoyue
2015-06-18 20:37:51 +08:00
用 Linq 大概只需要一行
p = 1000

Enumerable.Range(0, (list.Count()+p-1)/p).ToList().ForEach(x=>PutInHtml(a.Skip(p*x).Take(p)));
guanyongxin
2015-06-18 22:45:42 +08:00
@caoyue ling不会.....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/199490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX