使用LINQ查詢物件列表中的整數並排序的C#程式
簡介
在這篇文章中,我們將學習如何編寫一個C#程式,從物件列表中查詢整數,並使用LINQ對其進行排序。讓我們簡要概述一下該語言。C#程式語言經常用於開發桌面、Web和移動應用程式。語言整合查詢(LINQ)是C#的強大功能之一。開發人員可以使用它快速查詢來自各種來源的資料,包括陣列、集合和資料庫。它為開發人員提供了一種類似於SQL(結構化查詢語言)的語法,並可以輕鬆進行資料操作和排序。無論資料來源是什麼,它都提供了一種標準的語法來查詢資料。由於LINQ的語法與SQL類似,因此開發人員可以輕鬆學習和使用它。
問題陳述
在本文中,我們將演示如何使用C#中的LINQ從物件列表中查詢整數並對其進行排序。必須從物件列表中提取整數和雙精度浮點數,然後對其進行排序。因此,可以使用OfType()方法進行此操作,並使用OrderBy()函式對整數進行排序。讓我們分別瞭解一下它們以及它們的語法:
OfType() 方法
它用於根據指定型別篩選IEnumerable的元素。如果提供的源為null,此方法將引發ArgumentNullException異常。
語法
public static System.Collections.Generic.IEnumerable<TResult> OfType<TResult>(this System.Collections.IEnumerable source);
OrderBy() 方法
此方法用於按升序對集合中的元素進行排序。如果提供的源為null,此方法也將引發ArgumentNullException異常。
語法
public static System.Linq.IOrderedEnumerableOrderBy<TSource,TKey(thisSystem.Collections.Generic.IEnumerable<TSource> list, Func<TSource,TKey> Selector);
讓我們用一個例子來理解這個問題。
示例
建立一個列表並向其中新增元素。在這個例子中,我們使用不同資料型別的物件。
輸入
["Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34]
在不同的物件中,OfType()和OrderBy()方法將對列表中的整數值進行排序和排列。因此,給定輸入的輸出為:
輸出
[18, 20, 34,100]
演算法
步驟1 – 建立物件列表
讓我們首先建立一個物件列表,其中包含字串、整數和字元的組合。
List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34};
步驟2 – 使用OfType()方法查詢整數
然後將使用OfType()方法過濾列表,以便只有整數值保留。
var integers = list.OfType<int>();
LINQ提供的擴充套件方法稱為OfType()。它返回該型別過濾後的條目列表。在本例中,列表被過濾為僅包含int型別的元素。現在,integers變數中只有來自第一個列表的整數值。
步驟3 – 使用OrderBy()排序整數
我們可以使用OrderBy()方法將整數序列按升序排序。
var sortedIntegers = integers.OrderBy(x => x);
LINQ提供的另一個擴充套件方法是OrderBy()方法。它根據給定的鍵按升序對元素列表進行排序。在本例中,排序序列的鍵使用lambda表示式(x => x)指定。序列元素(x)傳遞給lambda表示式,然後返回將作為排序鍵的值。
現在,sortedIntegers變數中包含來自初始列表的整數值,並按升序排列。
步驟4 – 列印排序後的整數。
最後,我們可以使用foreach迴圈和Console.WriteLine()方法列印排序後的整數值。
我們剛剛閱讀了一個簡單的演算法。現在讓我們看一下完整的C#程式,它演示瞭如何使用LINQ從物件列表中查詢整數並對其進行排序。
示例
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main(string[] args) {
List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, "50", 20, 'A', 34 };
var integers = list.OfType<int>();
var sortedIntegers = integers.OrderBy(x => x);
Console.WriteLine("Sorted integer values are:");
foreach (int integer in sortedIntegers) {
Console.WriteLine(integer);
}
}
}
輸出
Sorted integer values are: 18 20 34 100
結論
在這篇文章中,我們向您展示瞭如何使用C#中的LINQ從物件列表中查詢整數並對其進行排序。在使用OfType()方法刪除列表中除整數值外的所有值後,我們使用OrderBy()方法對整數進行了排序。最後,我們使用列印命令將排序後的整數值顯示到控制檯中。我們已經瞭解了演算法,也看到了程式碼。我們希望這篇文章能幫助您增強對該主題的知識和理解。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP