使用 LINQ 的 WHERE 子句查詢陣列中最大數的 C# 程式


簡介

在本文中,我們將使用 LINQ 中的 WHERE 子句查詢陣列中的最大數。LINQ(語言整合查詢)用於在 C# 語言中生成查詢。LINQ 最棒的一點是它提供了一個統一的訪問不同資料來源(如資料庫和 XML 文件)的方法。藉助 LINQ,使用者可以編寫可讀性更好的程式碼,並且程式碼更加簡潔和美觀。它還提供了其他功能,例如過濾、排序、分組資料甚至更改資料。在繼續之前,我們將詳細瞭解語言整合查詢,即 LINQ,並且還將瞭解 LINQ 和名稱空間下的不同子句,特別是我們將在程式碼中使用的那些子句。

語言整合查詢

LINQ 是 .NET 框架的一個元件,它幫助使用者以型別安全的方式訪問它。LINQ 最棒的一點是它提供了一個統一的訪問不同資料來源(如資料庫和 XML 文件)的方法。藉助 LINQ,使用者可以編寫可讀性更好的程式碼,並且程式碼更加簡潔和美觀。在其中,子句是查詢表示式的不同部分,對它執行不同型別的操作。LINQ 下有不同型別的子句執行唯一的功能。下面解釋了一些。

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

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

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

  • Group 子句  它根據給定的條件對資料元素進行分組。

名稱空間

這些是任何 C# 程式碼的組成部分。它充當任何 C# 程式碼甚至任何其他語言程式碼的支柱或基礎。它是一種將相關的類、方法、檔案、函式、結構和列舉分組在一起的方法。它也是組織程式碼的一種方式。在這裡,我們將深入研究某些名稱空間,並瞭解如何在程式碼中以實踐的方式使用它們。

  • System.Text 名稱空間  它用於執行字元和字串編碼操作。它包含可用於操作字串和處理正則表示式的各種函式。例如,Encoding、StringBuilder、Decoder 和 Encoder 是在此名稱空間下使用的一些方法。

  • System.Collections.Generic  此名稱空間提供了用於操作和儲存資料的各種資料結構。它允許使用者建立強型別集合以獲得更好的型別安全性。在此名稱空間下,一些常用的資料結構是 List、Dictionary、HashSet、Queue、Stack 和 LinkedList 是在此名稱空間下一些常用的資料結構。

  • System.Linq  此名稱空間基本上用於查詢資料來源,如 Stack、Array 和 queue。它允許人們編寫簡潔的查詢來訪問資料庫,類似於在 SQL 中編寫的方式。我們經常看到的常用查詢中有一些是 Select、Where、Join、Any、Skip、OrderBy、Take 等。

  • System.Threading.Tasks  它基本上用於非同步程式設計。簡單來說,我們可以說它用於多程式設計。多個任務可以在後臺保持執行,而不會影響程式碼的主要功能。一些常用的型別和類是 task、parallel、cancellation token 等。

演算法

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

步驟 2  現在,藉助 FOR 迴圈,我們可以計算元素的總和。我們將總和儲存在一個變數中。

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

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

步驟 5  現在,我們將使用 foreach 迴圈遍歷迭代器,我們可以在 C# 語言中使用它。

步驟 6  最後,當我們使用 foreach 迴圈遍歷時,我們會按順序列印元素。

步驟 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# 的瞭解有所幫助。

更新於: 2023 年 4 月 21 日

249 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告