本文要學習的主題是使用List集合的where()方法和LINQ寫一個C#程序,以尋找名字以'S'開頭的學生名單。
語言整合查詢又稱為 LINQ 用於產生 C# 語言查詢。以前我們必須使用其他關係語言,例如 SQL 和 XML。它為 C# 語言或任何其他 .NET 語言提供了更多功能。在 LINQ 中查詢資料庫的語法與查詢數組中儲存的資料的語法相同。
在我們繼續並理解C#程式的演算法和程式碼之前,使用LINQ的List Collection的where()方法找到名字以'S'開頭的學生列表。讓我們簡要複習一下LINQ的簡寫形式。
一個叫做LINQ的.NET框架的一部分使用戶以型別安全的方式更容易檢索資料。這是在.NET 3.5版本中引入的。
LINQ最好的特點是它提供了一種從許多來源(包括資料庫和XML文件)獲取資料的單一方法。借助LINQ,使用者可以編寫更易於理解、更簡潔、更美觀的程式碼。它還提供其他功能,如過濾、排序、分組資料甚至修改資料。
現在,是時候對where()方法進行一些解釋了,它也被稱為Enumerable.Where()方法,屬於命名空間System.Linq。
這個方法屬於命名空間 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
我們將採取一個問題陳述,這將使我們很容易理解 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中文網其他相關文章!