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


简介

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

让我们简单了解一下C#语言。C#编程语言常用于开发桌面、Web和移动应用程序。在任何编程语言中,处理大量数据都可能很复杂。在处理数据时,查找满足特定条件的数据点或过滤掉特定值是一项常见操作。C#的语言集成查询(LINQ)功能可用于简化和改进数据处理。开发人员可以轻松地从各种来源查询数据,包括数组、集合和数据库。它为开发人员提供了一种类似于SQL(结构化查询语言)的语法,并允许轻松地操作和排序数据。由于LINQ的语法类似于SQL,因此开发人员可以轻松学习和使用它。

问题陈述

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

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

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

我们可以通过结合使用Where()函数和OfType()方法来实现这一点。让我们分别了解一下它们以及它们的语法:

OfType()

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

语法

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

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>() 

步骤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()方法。用一个例子解释了问题陈述。在讨论了算法之后。最后,显示了代码和输出。我们希望本文能帮助您提高对该主题的认知和理解。

更新于:2023年3月31日

405 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.