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=
这是一个有点奇怪的问题,但现在开始。。。
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]);
}
当然,这是假设arr1
和arr2
具有相同的长度(元素数量(。
编辑
要在文本框中显示结果,您需要一个变量:
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 );