在 C# 中比較陣列

Saad Aslam 2023年10月12日
  1. 在 C# 中使用 SequenceEqual() 函式比較陣列
  2. 在 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.
作者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

相關文章 - Csharp Array