目錄
簡介
語言整合查詢 (LINQ)
Where<TSource>(IEnumerable<TSources>,Func<T Source,Boolean>)
Where<TSource>(IEnumerable<TSources>,Func<TSource>(IEnumerable<TSources>,Fir<
演算法
輸出
時間複雜度
結論
首頁 後端開發 C#.Net教程 C# 程式使用使用 LINQ 的列表收集的 where() 方法來尋找姓名以「S」開頭的學生列表

C# 程式使用使用 LINQ 的列表收集的 where() 方法來尋找姓名以「S」開頭的學生列表

Sep 11, 2023 pm 09:29 PM

C# 程序使用使用 LINQ 的列表收集的 where() 方法查找姓名以“S”开头的学生列表

簡介

本文要學習的主題是使用List集合的where()方法和LINQ寫一個C#程序,以尋找名字以'S'開頭的學生名單。

語言整合查詢又稱為 LINQ 用於產生 C# 語言查詢。以前我們必須使用其他關係語言​​,例如 SQL 和 XML。它為 C# 語言或任何其他 .NET 語言提供了更多功能。在 LINQ 中查詢資料庫的語法與查詢數組中儲存的資料的語法相同。

在我們繼續並理解C#程式的演算法和程式碼之前,使用LINQ的List Collection的where()方法找到名字以'S'開頭的學生列表。讓我們簡要複習一下LINQ的簡寫形式。

語言整合查詢 (LINQ)

一個叫做LINQ的.NET框架的一部分使用戶以型別安全的方式更容易檢索資料。這是在.NET 3.5版本中引入的。

LINQ最好的特點是它提供了一種從許多來源(包括資料庫和XML文件)獲取資料的單一方法。借助LINQ,使用者可以編寫更易於理解、更簡潔、更美觀的程式碼。它還提供其他功能,如過濾、排序、分組資料甚至修改資料。

現在,是時候對where()方法進行一些解釋了,它也被稱為Enumerable.Where()方法,屬於命名空間System.Linq。

Where(IEnumerable,Func)

的中文翻譯為:

Where(IEnumerable,Func(IEnumerable,Fir<

這個方法屬於命名空間 System.Linq。它根據謂詞對值序列進行過濾。讓我們來看看它的定義語法 -

public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
登入後複製

這個方法有一個型別參數TSource,它告訴我們來源的元素的型別。另外還有兩個參數,來源是一個IEnumerable用來過濾,謂詞是用來測試每個元素是否符合條件的函數。

這是一個傳回滿足條件的輸入序列中的項目集合的回傳方法,表示為一個IEnumerable。當謂詞或來源為空時,可能會拋出ArgumentNullException例外。

我們將採取一個問題陳述,這將使我們很容易理解 where() 的概念方法。

在一所學校裡,有一個由來自不同班級的5名成員組成的西洋棋隊。他們分別是Ankit、Abhinay、Shubham、Shreyank和Shahnawaz。他們在不同的班級學習。需要提供一個帶有首字母為'S'的西裝外套。因此,為了知道以'S'開頭的學生的姓名,校長委託你編寫一個選擇以'S'開頭的學生姓名的程式。

現在,在下一節中,我們將討論使用 LINQ 列表集合的 where() 方法編寫 C# 程式來尋找姓名以 'S' 開頭的學生列表的演算法。

演算法

以下是使用where()方法編寫程式碼時需要遵循的步驟。

步驟 1 - 記得宣告使用 where() 方法的正確命名空間,即 System.Linq。

第 2 步 啟動班級程式碼並宣告三個變數來儲存學生的捲號、班級和姓名。

第 3 步 在下一步中,我們建立字串方法,該方法傳回學生的捲號、姓名和標準。

第 4 步 在 main() 部分中,我們宣告列表變量,然後將資料加入到列表中。

第五步驟  現在我們使用where()方法根據使用者提供的謂詞來過濾所需的資訊。

第6步  在這一步驟中,我們顯示所獲得的詳細資訊。然後結束程式。

範例

讓我們透過一個例子來討論這個問題。

using System.Linq;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
class Student{

   // Three variables to store roll number, class, and name of the student
   int roll;
   int std;
   string name;
   // Creating the string method which returns roll number, name, and standard of student
   public override string ToString(){
      return roll + " " + name + " " + std;
   }
   static void Main(string[] args){

      // Declaring a list variable
      List<Student> student = new List<Student>(){

         // Details of students of the chess team
         new Student{ roll = 21, name = "Ankit", std = 10 },
         new Student{ roll = 12, name = "Abhinay", std = 10 },
         new Student{ roll = 07, name = "Shubham", std = 11 },
         new Student{ roll = 14, name = "Shreyank", std = 12 },
         new Student{ roll = 10, name = "Shanawaz", std = 11 }

      };
      
      // Using the Where() function we search through the student details
      IEnumerable<Student> Query = student.Where(s => s.name[0] == 'S');

      // Displaying the student details
      Console.WriteLine("Roll Name Standard");
      Console.WriteLine("- - - - - - - - - - - - - - - - - ");
      foreach (Student e in Query) {

         // Call the to string method
         Console.WriteLine(e.ToString());
      }
   }
} 
登入後複製

輸出

Roll Name Standard
- - - - - - - - - - - - - - - - -
07 Shubham 11
14 Shreyank 12
10 Shanawaz 11 
登入後複製

時間複雜度

where() 方法的時間複雜度是常數,用 Big-O 表示法可以稱為 O(1)。因此整個程式碼的時間複雜度為O(1)。

結論

在本文中,我們討論了一個 C# 程序,該程序使用 LINQ 的列表集合的 where() 方法查找姓名以“S”開頭的學生列表。我們理解了 where() 方法。然後我們了解了演算法,最後我們學習了程式碼。然後我們就了解了程式碼的時間複雜度。

我們希望本文對增強您對 C# 的了解有所幫助。

以上是C# 程式使用使用 LINQ 的列表收集的 where() 方法來尋找姓名以「S」開頭的學生列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

char在C語言中如何處理特殊字符 char在C語言中如何處理特殊字符 Apr 03, 2025 pm 03:18 PM

C語言中通過轉義序列處理特殊字符,如:\n表示換行符。 \t表示製表符。使用轉義序列或字符常量表示特殊字符,如char c = '\n'。注意,反斜杠需要轉義兩次。不同平台和編譯器可能有不同的轉義序列,請查閱文檔。

char在C語言字符串中的作用是什麼 char在C語言字符串中的作用是什麼 Apr 03, 2025 pm 03:15 PM

在 C 語言中,char 類型在字符串中用於:1. 存儲單個字符;2. 使用數組表示字符串並以 null 終止符結束;3. 通過字符串操作函數進行操作;4. 從鍵盤讀取或輸出字符串。

char與wchar_t在C語言中的區別 char與wchar_t在C語言中的區別 Apr 03, 2025 pm 03:09 PM

在 C 語言中,char 和 wchar_t 的主要區別在於字符編碼:char 使用 ASCII 或擴展 ASCII,wchar_t 使用 Unicode;char 佔用 1-2 個字節,wchar_t 佔用 2-4 個字節;char 適用於英語文本,wchar_t 適用於多語言文本;char 廣泛支持,wchar_t 依賴於編譯器和操作系統是否支持 Unicode;char 的字符範圍受限,wchar_t 的字符範圍更大,並使用專門的函數進行算術運算。

C語言各種符號的使用方法 C語言各種符號的使用方法 Apr 03, 2025 pm 04:48 PM

C 語言中符號的使用方法涵蓋算術、賦值、條件、邏輯、位運算符等。算術運算符用於基本數學運算,賦值運算符用於賦值和加減乘除賦值,條件運算符用於根據條件執行不同操作,邏輯運算符用於邏輯操作,位運算符用於位級操作,特殊常量用於表示空指針、文件結束標記和非數字值。

c#多線程和異步的區別 c#多線程和異步的區別 Apr 03, 2025 pm 02:57 PM

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

char在C語言中如何進行類型轉換 char在C語言中如何進行類型轉換 Apr 03, 2025 pm 03:21 PM

在 C 語言中,char 類型轉換可以通過:強制類型轉換:使用強制類型轉換符將一種類型的數據直接轉換為另一種類型。自動類型轉換:當一種類型的數據可以容納另一種類型的值時,編譯器自動進行轉換。

char數組在C語言中如何使用 char數組在C語言中如何使用 Apr 03, 2025 pm 03:24 PM

char 數組在 C 語言中存儲字符序列,聲明為 char array_name[size]。訪問元素通過下標運算符,元素以空終止符 '\0' 結尾,用於表示字符串終點。 C 語言提供多種字符串操作函數,如 strlen()、strcpy()、strcat() 和 strcmp()。

C語言 sum 的作用是什麼? C語言 sum 的作用是什麼? Apr 03, 2025 pm 02:21 PM

C語言中沒有內置求和函數,需自行編寫。可通過遍歷數組並累加元素實現求和:循環版本:使用for循環和數組長度計算求和。指針版本:使用指針指向數組元素,通過自增指針遍歷高效求和。動態分配數組版本:動態分配數組並自行管理內存,確保釋放已分配內存以防止內存洩漏。

See all articles