首頁 >後端開發 >C#.Net教程 >使用 LINQ 從物件清單中尋找負雙精確度數的 C# 程序

使用 LINQ 從物件清單中尋找負雙精確度數的 C# 程序

PHPz
PHPz轉載
2023-09-03 16:37:021233瀏覽

使用 LINQ 从对象列表中查找负双精度数的 C# 程序

介紹

在本文中,我們將學習如何編寫 C# 程式以使用 LINQ 從物件清單中尋找負雙數。

讓我們對該語言進行一個簡單的概述。 C# 程式語言經常用於開發桌面、Web 和行動應用程式。使用任何程式語言處理大量資料都可能很困難。尋找滿足一組特定要求的資料點或過濾掉特定值是處理資料時的常見活動。 C# 的語言整合查詢 (LINQ) 功能可用於簡化和改進資料處理。開發人員可以快速查詢來自各種來源的數據,包括陣列、集合和資料庫。它使開發人員能夠使用與 SQL(結構化查詢語言)相當的語法,並支援簡單的資料操作和排序。由於LINQ的語法與SQL類似,開發人員可以輕鬆學習和使用它。

問題陳述

在本文中,我們將示範如何使用LINQ從物件清單中找到負的雙精確度數。要使用LINQ從此清單中找到負的雙精確度數,我們需要執行以下步驟 -

  • 從清單中過濾掉重複的值。

  • 從清單中過濾掉負雙精確度值。

我們可以透過將Where()函數與OfType()方法結合使用來實現這一點。讓我們逐一介紹它們以及它們的語法 -

OfType()

的翻譯為:

OfType()

OfType() 方法用於根據給定的類型過濾 IEnumerable 的元素。換句話說,該方法用於根據清單或序列來源是否具有將項目集合轉換為特定類型的能力來過濾清單或序列來源。如果提供的來源為 null,則會拋出 ArgumentNullException 例外。

文法

public static System.Collections.Generic.IEnumerable<TResult> OfType<TResult>(this System.Collections.IEnumerable source); 

Where()

的翻譯為:

Where()

使用Where()方法根據謂詞函數過濾值。也可以說它根據指定的條件或要求傳回序列或清單中的值。

文法

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) 

讓我們建立一個包含不同資料類型物件的清單。

Input List: { 3.14, -2.71, "hello", 0, “-7.5”, "world", -4.2, ‘a’, -3}

我們已經得到了一個包含不同資料類型的元素清單。現在輸出將只包含負的雙精度數。

Output: {-2.71, -4.2}

讓我們理解

演算法

步驟 1 - 建立一個物件清單

List<object> list = new List<object>() 

第二步 - 從清單中選擇雙倍值。

我們可以使用 LINQ 的 OfType() 方法從清單中刪除 double 值。在過濾集合後,此函數僅傳回所提供類型「double」的元素。在我們的情況下,我們希望僅刪除清單的雙精度值。以下是我們如何應用此策略 -

var doubles = list.OfType<double>(); 

步驟3 - 從清單中選擇的雙精確度值中,選擇負的雙精確值。必須使用過濾器從集合中過濾出負的雙精度值。可以使用LINQ Where()方法來實現這一點。此方法在套用篩選器到集合後,僅傳回與篩選器相符的元素。在這種情況下,我們只想過濾出集合中的負的雙精確度值。以下是如何應用這種技術。

var negativeDoubles = doubles.Where(d => d < 0); 

第 4 步 - 最後,使用 foreach 迴圈列印負雙精確度數。

foreach (var d in doubles)
{
   Console.WriteLine(d);
}

這些是從清單中取得負數的簡單步驟。讓我們來看看程式碼。

範例

using System;
using System.Collections.Generic;
using System.Linq;
class Program {
   static void Main(string[] args) {
      List<object> list = new List<object> {
         -2,3.14, -2.71, "hello", 0,"-7.5" , "world", -4.2
      };
      var doubles = list.OfType<double>().Where(d => d < 0);
      foreach (var d in doubles) {
         Console.WriteLine(d);
      }
   }
}

輸出

上述程式碼的輸出是 -

-2.71 
-4.2 

注意 − 這裡你可能會想為什麼沒有提到-2和-7.5。這是因為-2是一個負數,但不是一個雙精度數。而-7.5被寫作“-7.5”,被視為一個字串。

結論

在這篇文章中,我們展示瞭如何在C#中使用LINQ來從物件清單中找到負的雙精度數。我們使用了兩種方法Where()和OfType()來寫程式碼。我們簡要討論了Where()和OfType()方法。問題陳述透過一個例子進行了解釋。在我們討論了演算法之後。最後,顯示了程式碼和輸出。我們希望這篇文章能幫助您增加對這個主題的知識和理解。

以上是使用 LINQ 從物件清單中尋找負雙精確度數的 C# 程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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