首頁  >  文章  >  後端開發  >  C# 程式使用 WHERE 子句 LINQ 找出陣列中的最大數字

C# 程式使用 WHERE 子句 LINQ 找出陣列中的最大數字

王林
王林轉載
2023-09-08 19:25:061221瀏覽

C# 程序使用 WHERE 子句 LINQ 查找数组中的最大数字

介紹

在本文中,我們將使用 LINQ 中的 WHERE 子句來尋找陣列中的最大數字。 LINQ(語言整合查詢)用於產生 C# 語言的查詢。 LINQ 最好的部分是它提供了一個統一的方法來源來存取來自不同來源(例如資料庫和 XML 文件)的資料。借助LINQ,使用者可以編寫出可讀性更好的程式碼,而且程式碼更加簡潔、美觀。它還提供其他功能,如過濾、排序、分組數據,甚至更改數據。在繼續之前,我們將詳細了解語言整合查詢(又稱 LINQ),我們還將了解 LINQ 和命名空間下的不同子句,尤其是我們將在程式碼中使用的子句。

語言整合查詢

LINQ是.NET框架的一個元件,可以幫助使用者以型別安全的方式存取它。 LINQ 最好的部分是它提供了一個統一的方法來源來存取來自不同來源(例如資料庫和 XML 文件)的資料。借助LINQ,使用者可以編寫出可讀性更好的程式碼,而且程式碼更加簡潔、美觀。其中,子句是查詢表達式的獨特部分,對其執行不同類型的操作。 LINQ 下有不同類型的子句,它們執行獨特的功能。下面解釋了一些

  • From 子句  它指定資料來源,也指示任何數字的範圍值。

  • #Where 子句  它會根據某些條件過濾任何值。

  • #Select子句  它將資料來源中的每個元素投影並轉換為新的形式。

  • #Group Clause  它根據給定的條件將資料元素分組。

#命名空間

這些是任何C#程式碼的重要組成部分。它充當了任何C#程式碼甚至其他語言程式碼的骨幹或基礎。它是將相關的類別、方法、文件、函數、結構和枚舉組合在一起的一種方式。它也是組織程式碼的一種方式。在這裡,我們將深入研究某些命名空間,並看到在我們的程式碼中使用它們的實際方法。

  • System.Text 命名空間 # 它用於執行字元和字串編碼操作。它包含各種函數,可以用於操作字串和使用正規表示式。例如- 編碼、StringBuilder、解碼器和編碼器是在此命名空間下使用的一些方法。

  • #System.Collections.Generic # 此命名空間提供了用於操作和儲存資料的各種資料結構。它允許用戶創建強類型集合以提高類型安全性。在此命名空間下,一些常用的資料結構包括List、Dictionary、HashSet、Queue、Stack和LinkedList。

  • #System.Linq # 這個命名空間主要用於查詢資料來源,如堆疊、陣列、佇列。它允許我們編寫簡潔的查詢來存取資料庫,類似於在SQL中編寫查詢。一些常用的查詢操作包括Select、Where、Join、Any、Skip、OrderBy、Take等。

  • System.Threading.Tasks  它基本上是用於非同步程式設計。簡單來說,我們可以說它用於多道程式設計。多個任務可以在背景保持運行,而不影響程式碼的主要功能。一些常用的類型和類別有任務、並行、取消令牌等。

#演算法

步驟 1 − 首先,我們需要一個整數數組,可以將其儲存在數組中。這個陣列將是我們的輸入參數,可以用來執行多個操作。除了數組之外,我們還有一個值,也將作為輸入。我們需要印出所有大於它的數字。

第 2 步驟  現在藉助 FOR 循環,我們可以計算元素的總和。我們將總和儲存在變數中。

第 3 步 現在,使用 where 函數檢查大於 value 變數的數字。

步驟 4  透過使用 LINQ 查詢,我們將所有大於變數值的數字儲存在一個迭代器中。

步驟 5  現在我們將使用在C#語言中可以使用的for each循環來迭代遍歷迭代器。

步驟6  最後,當我們使用for each循環迭代時,按順序列印元素。

第 7 步  我們的輸出控制台中有所需的輸出。

範例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//these namespaces are declared in advance to make sure the related function work in order.
class Tutorials_point{

   //declare class first.
   static void Main() {

      int[] arr = { 10,200,23, 50, 30,40};
      
      //Here, we are having a set of numbers stored in an array as input.
      
      // below we also have a value above which are the numbers will be printed
      var answer = from value in arr where value > 30 select value;
      
      //All the numbers which are greater than 100 are stored.
      Console.WriteLine("The output is");
      
      // Here, we are printing the desired output.
      foreach (var i in answer) {
         //we are iterating over using for each loop and printing all the numbers.
         
         // The numbers printed are our desired output.
         Console.Write(i.ToString() + " ");
      }
   }
}

輸出

The output is 
200 50 40 

時間複雜度

在上面描述的程式碼中,我們可以看到我們正在使用 foreach 迴圈迭代數組。因此,我們可以推斷出,最壞情況下程式碼的時間複雜度可以是陣列的大小。所以我們可以說上述演算法的時間複雜度是O(數組的大小)。

結論

在本文中,我們廣泛討論了程式碼中使用的 LINQ 和命名空間,以便人們可以更好地理解程式碼。為了更好地理解,我們也討論了演算法、程式碼及其時間複雜度。我們希望本文對增強您對 C# 的了解有所幫助。

以上是C# 程式使用 WHERE 子句 LINQ 找出陣列中的最大數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除