HOWTO · Csharp

在 C# 中比較陣列

在本文中,我們將學習如何在 C# 中比較和檢查兩個或多個陣列是否相等。

本頁內容

本文將討論比較兩個陣列以檢視它們是否相等。

我們將討論和實現來比較陣列的兩種方法是,

  • SequenceEqual() 函式;
  • 比較每個陣列中的匹配元素。

如果兩個陣列具有相同的匹配元素和相同數量的元素,則稱它們相等。

在 C# 中使用 SequenceEqual() 函式比較陣列

首先,我們必須匯入庫以訪問 SequenceEqual() 函式。

using System.Linq;

建立一個帶有 Main() 函式的 ArrayCompare 類。

class ArrayCompare {
  static void Main(string[] args) {}
}

isEqual 變數宣告為布林資料型別變數。它將根據陣列是否相等返回 True 或 False。

Boolean isEqual;

初始化兩個名為 firstArraysecondArray 的資料型別 int[] 的陣列,併為它們分配要比較的整數值。

int[] firstArray = { 10, 20, 30, 40, 40, 50 };
int[] secondArray = { 10, 20, 30, 40, 40, 50 };

我們將使用 SequenceEqual() 方法來比較這兩個陣列。

isEqual = firstArray.SequenceEqual(secondArray);

現在我們在 isEqual 變數中儲存了一個真或假值,我們必須檢查它返回的內容。如果返回值為 True,它將執行 if 塊,如果返回值為 False,它將執行 else 塊。

if (isEqual) {
  Console.WriteLine("Both the arrays are equal");
} else {
  Console.WriteLine("Both the arrays are not equal");
}

原始碼:

using System;
using System.Linq;

class ArrayCompare {
  static void Main(string[] args) {
    Boolean isEqual;
    int[] firstArray = { 10, 20, 30, 40, 40, 50 };
    int[] secondArray = { 10, 20, 30, 40, 40, 50 };
    isEqual = firstArray.SequenceEqual(secondArray);
    if (isEqual) {
      Console.WriteLine("Both the arrays are equal.");
    } else {
      Console.WriteLine("Both the arrays are not equal.");
    }
  }
}

當兩個陣列相等時,

輸出:

Both the arrays are equal.

假設我們將 firstArray 中的任何元素更改為,

int[] firstArray = { 10, 20, 30, 40, 30, 60 };

輸出:

Both the arrays are not equal.

在 C# 中比較匹配的元素來比較陣列

我們將建立一個布林變數並在 Main() 函式中將其值設定為 true。

Boolean isEqual = true;

以與上一個方法相同的方式初始化兩個陣列。

int[] firstArray = { 10, 20, 30, 40, 40, 50 };
int[] secondArray = { 10, 20, 30, 40, 40, 50 };

我們必須確定兩個陣列的長度。此外,要相等,所有索引值必須相同。

所以讓我們應用一個條件來確保 firstArraysecondArray 的長度相等。如果它返回 True,我們必須驗證所有索引處的值;否則,isEqual 值將為假。

為了檢查陣列的所有索引是否相等,我們將使用一個 for 迴圈,從索引 0 開始並遍歷 secondArray 的長度。它將驗證所有索引的值,如果它們都不相同,它將設定 isEqual 的值為 False。

if (firstArray.Length == secondArray.Length) {
  for (int y = 0; y < secondArray.Length; y++) {
    if (secondArray[y] != firstArray[y]) {
      isEqual = false;
    }
  }
} else {
  isEqual = false;
}

最後,我們需要輸出陣列是否相等的訊息。

if (isEqual) {
  Console.WriteLine("The arrays are equal");
} else {
  Console.WriteLine("The arrays are not equal");
}

原始碼:

using System;

class ArrayCompare {
  static void Main(string[] args) {
    Boolean isEqual = true;
    int[] firstArray = { 10, 20, 30, 40, 40, 50 };
    int[] secondArray = { 10, 20, 30, 40, 40, 50 };
    if (firstArray.Length == secondArray.Length) {
      for (int y = 0; y < secondArray.Length; y++) {
        if (secondArray[y] != firstArray[y]) {
          isEqual = false;
        }
      }
    } else {
      isEqual = false;
    }
    if (isEqual) {
      Console.WriteLine("Both the arrays are equal.");
    } else {
      Console.WriteLine("Both the arrays are not equal.");
    }
  }
}

當兩個陣列相等時,

輸出:

Both the arrays are equal.

如果我們修改任何兩個陣列中的任何元素,

輸出:

Both the arrays are not equal.