簡體   English   中英

從數組 c# 輸出一定數量的元素

[英]Outputting certain number of elements from array c#

我該怎么做,比如說在控制台上每行輸出一個數組的 3 個元素? 並對整個陣列執行此操作? 有沒有像 Java Scanner 這樣的東西可以幫助我?

一種方法是使用 for 循環。 您可以使用以下內容:

// input already defined as array
for (int i = 0; i < input.Length; i += 3) {
    Console.WriteLine(input[i] + ' ' + input[i + 1] + ' ' + input [i + 2]);
}

這將要求您的數組的長度為 3 的倍數; 如果不是這種情況,您需要添加某種邏輯檢查input[i + 1]input[i + 2]存在於數組中。

一個可能的,雖然有點冗長的解決方案,將是這樣的:

for (int i = 0; i < input.Length; i += 3) {
  if (i + 2 >= input.length) {
      Console.WriteLine(input[i] + ' ' + input[i + 1] + ' ' + input[i + 2]);
  } else if (input[i + 1] >= input.length) {
      Console.WriteLine(input[i] + ' ' + input[i + 1]);
  } else {
      Console.WriteLine(input[i]);
  }
}

林克解決方案:

  int[] data = Enumerable.Range(1, 20).ToArray();

  int groupSize = 3;

  var result = Enumerable
    .Range(0, data.Length / groupSize + 
             (data.Length % groupSize == 0 ? 0 : 1))
    .Select(index => data.Skip(index * groupSize).Take(groupSize))
    .Select(items => string.Join(", ", items));

  Console.Write(string.Join(Environment.NewLine, result));

輸出:

1, 2, 3
4, 5, 6
7, 8, 9
10, 11, 12
13, 14, 15
16, 17, 18
19, 20

arrayElements作為輸入,然后您可以將它們分組為指定大小的塊,並從每個組中收集值並顯示它:

List<int> arrayElements = new List<int>() { 1,5,2,3,6,4,87,96,54,5,4,5,6,2,5,9,5,5,5,6,2,45,6};

int chunkSize = 3;
var results = arrayElements.Select((x, i) => new { Key = i / chunkSize , Value = x })
                           .GroupBy(x => x.Key, x => x.Value)
                           .Select(x=>String.Join("  ",x.ToList()))
                           .ToList();

foreach (string chunk in results)
{
    Console.WriteLine(chunk);
}

工作示例

你可以做一些這樣的事情。 它將在一行中打印元素,並在連續打印三個元素后轉到新行。

    for(int i=0; i<arr.Length; ++i) {
        Console.Write(arr[i]+" ");

        if((i+1)%3==0){
            Console.WriteLine("");      
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM