将数组中的每个元素乘以除自身之外的所有数组元素

时间:2017-06-27 16:28:22

标签: c# foreach

我需要创建一个循环,将数组中的每个元素乘以除自身之外的所有数组元素。

示例 - >

[1 3 4]

[1 3 4]

1 3,1,4,3,1,3,4,4 1,4 3

我写了以下代码:

foreach (int first in Array)
     foreach (int second in Array)
        Console.WriteLine(first + " " + second );

我写的代码将每个数字与自身和其他元素相乘。

有关如何解决此问题的任何想法?

由于

3 个答案:

答案 0 :(得分:1)

您应该循环遍历数组的索引而不是其元素。这样,您可以通过检查两个索引是否相等来检查您是否正在处理相同的元素:

var arr = new int[] {1, 3, 4};
var result = new List<string>();
for (int i = 0 ; i < arr.Length ; i++) {
    for (int j = 0 ; j < arr.Length ; j++) {
        if (i != j) {
            result.Add($"{arr[i]} {arr[j]}");
        }
    }
}

答案 1 :(得分:0)

尝试使用两个索引的嵌套for循环:

for (int ix1 = 0; ix1 < myArray.Length; ix1++) {
  // Numbers before ix1.
  for (int ix2 = 0; ix2 < ix1; ix2++) {
    Console.WriteLine(myArray[ix1] + " " + myArray[ix2]);
  }
  // Numbers after ix1
  for (int ix2 = ix1 + 1; ix2 < myArray.Length; ix2++) {
    Console.WriteLine(myArray[ix1] + " " + myArray[ix2]);
  }
}

我比Java更习惯Java,所以最好检查我的Javaisms语法。

答案 2 :(得分:0)

您可以使用的另一种方法:

board[(r * 8) + c]