首页 > 后端开发 > C#.Net教程 > 使用 LINQ 从对象列表中查找负双精度数的 C# 程序

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

PHPz
发布: 2023-09-03 16:37:02
转载
1251 人浏览过

使用 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板