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

csharpserver side programmingprogramming更新于 2025/9/24 4:53:00

简介

在本文中,我们将学习如何编写 C# 程序,使用 LINQ 从对象列表中查找负双精度数。

让我们简要概述一下该语言。 C# 编程语言经常用于开发桌面、Web 和移动应用程序。 在任何编程语言中,处理大量数据都很困难。 查找满足特定要求的数据点或过滤掉特定值是处理数据时经常进行的活动。 C# 的语言集成查询 (LINQ) 功能可用于简化和改进数据处理。 开发人员可以快速查询来自各种来源的数据,包括数组、集合和数据库。 它使开发人员能够访问与 SQL(结构化查询语言)相当的语法,并支持简单的数据操作和排序。由于 LINQ 的语法与 SQL 相似,开发人员可以轻松学习和使用它。

问题陈述

在本文中,我们将演示如何使用 LINQ 从对象列表中查找负双精度数。 要使用 LINQ 从此列表中查找负双精度数,我们需要执行以下步骤 -

  • 从列表中过滤掉双精度值。

  • 从列表中过滤掉负双精度值。

我们可以通过将 Where() 函数与 OfType() 方法结合使用来实现这一点。 让我们逐一介绍它们及其语法 -

OfType()

OfType() 方法用于根据给定类型过滤 IEnumerable 的元素。或者,换句话说,该方法用于根据列表或序列源是否具有将项目集合转换为特定类型的能力来过滤列表或序列源。 如果提供的源为空,则会抛出 ArgumentNullException。

语法

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

Where()

根据谓词函数使用 Where() 方法过滤值。 您也可以说它根据指定的条件或要求从给定的序列或列表中返回值。

语法

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

让我们创建一个不同数据类型的对象列表。

输入列表:{ 3.14, -2.71, "hello", 0, "-7.5", "world", -4.2, 'a', -3}

我们得到了包含不同数据类型的不同元素的列表。现在输出将仅由负双精度数组成。

输出:{-2.71, -4.2}

让我们理解

算法

步骤 1 - 创建对象列表

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

步骤 2 - 从列表中选择双精度值。

我们可以使用 LINQ 的 OfType() 方法从列表中删除双精度值。过滤集合后,此函数仅返回提供类型"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() 方法。问题陈述通过一个例子来解释。之后我们讨论了算法。最后,显示代码和输出。我们希望本文能帮助您增强对该主题的知识和理解。


相关文章