首页 新闻 会员 周边

C#如何从一个数组每次输出10个数组?

0
悬赏园豆:10 [已解决问题] 解决于 2022-12-09 11:12

一个数组,里面有100个元素,每次输出10个元素,一直输出所有数据.

何生有二十六画的主页 何生有二十六画 | 初学一级 | 园豆:141
提问于:2022-12-08 12:26
< >
分享
最佳答案
2

[].Chunk(10).Select(arr=>string.Concat(arr,','))

收获园豆:8
czd890 | 专家六级 |园豆:14412 | 2022-12-08 13:36

我试试

何生有二十六画 | 园豆:141 (初学一级) | 2022-12-08 15:11

高!Chunk 是正解

var anArray = Enumerable.Range(1, 100).ToArray();
anArray.Chunk(10).ToList().ForEach(x => Console.WriteLine(string.Join(",", x)));
/* output:
1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30
31,32,33,34,35,36,37,38,39,40
41,42,43,44,45,46,47,48,49,50
51,52,53,54,55,56,57,58,59,60
61,62,63,64,65,66,67,68,69,70
71,72,73,74,75,76,77,78,79,80
81,82,83,84,85,86,87,88,89,90
91,92,93,94,95,96,97,98,99,100
*/
dudu | 园豆:31007 (高人七级) | 2022-12-08 15:27

精简版

Enumerable.Range(1, 100).Chunk(10).ToList().ForEach(x => Console.WriteLine(string.Join(",", x)));
dudu | 园豆:31007 (高人七级) | 2022-12-08 15:31

@dudu: Chunk这个是什么

何生有二十六画 | 园豆:141 (初学一级) | 2022-12-08 15:46

@何生有二十六画: 这是 .NET 6 引入的 LINQ 新方法,详见 Four new LINQ methods in .NET 6: Chunk, DistinctBy, Take, XOrDefault

dudu | 园豆:31007 (高人七级) | 2022-12-08 16:00

@dudu: 好的,我查查

何生有二十六画 | 园豆:141 (初学一级) | 2022-12-08 16:04
其他回答(2)
0

不是所有语言的 while 循环都能像 C++ 的 while 循环一样读取 stdin 缓存中的值。例如Java 语言不支持 while 循环读取 stdin 缓存中的值,因为它没有 cin 对象。你可以使用 Scanner 类来读取输入,但它是通过方法调用的方式来获取输入值,而不是通过循环语句。

a1010 | 园豆:301 (菜鸟二级) | 2022-12-08 13:46

你好像回答错题目了

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2022-12-08 16:59
0
// using System.Linq
var arr = Enumerable.Range(0, 100).ToArray();

// 这种最安全了
var n = 0;
while (n < arr.Length) {
	var arr0 = arr.Skip(n).Take(10).ToArray();
	Console.WriteLine(string.Join(",\t", arr0));
	n+=10;
}
Console.WriteLine();

//
var i = 0;
while(i < arr.Length ) 
{
	var end = i + 10;
	Range r = new(i,end);
	var arr0 = arr[r];
	Console.WriteLine(string.Join(",\t", arr0));
	i += 10;
}

Console.WriteLine();

var p = 0;
var span = arr.AsSpan();
while (p < arr.Length)
{
	var end = p + 10;
	var arr0 = span.Slice(p, 10).ToArray();
	Console.WriteLine(string.Join(",\t", arr0));
	p += 10;
}

收获园豆:2
jzblive | 园豆:428 (菜鸟二级) | 2022-12-08 15:04

我试试

支持(0) 反对(0) 何生有二十六画 | 园豆:141 (初学一级) | 2022-12-08 15:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册