C#如何使用两个"数组"按顺序显示2个数组;对于";循环

本文关键字:quot 数组 顺序 显示 2个 循环 对于 两个 何使用 | 更新日期: 2023-09-27 18:01:26

我是编程新手。

假设我有

arr1 = {1, 2, 3, 4, 5}
arr2 = {+, - , *, /, =}

如何通过使用类似这样的形式的two-for-loop来按顺序显示这两个数组。

1+2-3*4/5= 

C#如何使用两个"数组"按顺序显示2个数组;对于";循环

这是一个有点奇怪的问题,但现在开始。。。

string Result = string.Empty;
for (int i=0; i < arr1.Length; i++)
{
    for (int j=i; j == i; j++)
    {
        Result += arr1[i]+arr2[j];
    }
}
Console.Write(Result);

为什么此任务需要2个for循环?

  string[] arr1 = {"1", "2", "3", "4", "5"};
  string[] arr2 = {"+", "-", "*", "/", "="};
  for (int i = 0; i < arr1.Length; i++)
  {
    Console.Write(arr1[i]);
    Console.Write(arr2[i]);
  }

当然,这是假设arr1arr2具有相同的长度(元素数量(。

编辑

要在文本框中显示结果,您需要一个变量:

string[] arr1 = {"1", "2", "3", "4", "5"};
string[] arr2 = {"+", "-", "*", "/", "="};
string result = "";
for (int i = 0; i < arr1.Length; i++)
  result += arr1[i] + arr2[i]; // TxtDisplay.AppendText(arr1[i] + arr2[i])
TxtDisplay.Text = result;

这很棘手,但看看这个:-(

var arr1 = new[] {1, 2, 3, 4, 5};
var arr2 = new[] {'+', '-', '*', '/', '='};
for (int i = 0; i < Math.Min(arr1.Length, arr2.Length); i++)
    Console.Write("{0}{1}", arr1[i], arr2[i]);
for (; false;) ;//second loop, as you wish

在生产代码中,在优化阶段,您可以删除第二个循环。

var arr1 = new[] {1, 2, 3, 4, 5};
var arr2 = new[] {"+", "-", "*", "/", "="};

for (int i = 0; i < arr1.Length;i++)
{
    Console.Write(arr1[i]);
    for (;i<arr2.Length;)
    {
        Console.Write(arr2[i]);
        break;
    }
}

产生

1+2-3*4/5=

Koby是对的,但在这种特殊情况下,您可以做得稍微快一点。由于数组大小相同,因此需要少一个循环。当然,如果数组的长度不同,那么这将无法正常工作。

string Result = string.Empty;
for (int i=0; i < arr1.Length; i++)
    Result += arr1[i]+arr2[i];
Console.WriteLine(Result);

使用LINQ扩展Enumerable。Zip和Enumerable。的聚合

var combined = arr1.Zip( arr2, (a1, a2) => a1+a2 );
var result = combined.Aggregate( (agg, item ) => agg + item );
// Display result whereever you like
Console.WriteLine( result );