C# 程序从对象列表中查找整数并使用 LINQ 对它们进行排序

c# 程序从对象列表中查找整数并使用 linq 对它们进行排序

简介

在本文中,我们将学习如何编写 C# 程序从对象列表中查找整数并使用 LINQ 对它们进行排序。让我们对该语言进行一个简单的概述。 C# 编程语言经常用于开发桌面、Web 和移动应用程序。语言集成查询(有时称为 LINQ)是 C# 的强项之一。开发人员可以快速查询来自各种来源的数据,包括数组、集合和数据库。它使开发人员能够使用与 SQL(结构化查询语言)相当的语法,并支持简单的数据操作和排序。无论数据源如何,它都提供数据查询的标准语法。由于LINQ的语法与SQL类似,开发人员可以轻松学习和使用它。

问题陈述

在本文中,我们将演示如何从对象列表中查找整数并使用 C# 中的 LINQ 对它们进行排序。整数双精度数必须从对象列表中获取,然后必须对它们进行排序。因此,OfType() 方法可用于此操作,OrderBy() 函数可用于对整数进行排序。让我们分别回顾一下它们及其语法 –

OfType() 方法

它用于根据指定类型过滤 IEnumerable 的元素。如果提供的源为 null,此方法将抛出 ArgumentNullException 异常。

语法

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

OrderBy() 方法

使用此技术按升序对集合中的元素进行排序。如果提供的源为 null,则此过程也会引发 ArgumentNullException。

语法

public static System.Linq.IOrderedEnumerableOrderBy<TSource,TKey(thisSystem.Collections.Generic.IEnumerable list, Func Selector); 

让我们通过一个例子来理解这个问题。

示例

创建一个列表并向其中添加元素。在此示例中,我们采用不同数据类型的对象。

输入

["Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34] 

对于不同的对象,OfType() 和 OrderBy() 方法将对列表中的整数值进行排序和排列。所以给定输入的输出是

输出

[18, 20, 34,100]

算法

第 1 步 − 创建对象列表

我们首先创建一个由字符串、整数和字符组合组成的对象列表。

List list = new List { "Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34}; 

第 2 步 − 使用 OfType() 方法查找整数

然后,OfType() 方法将用于过滤列表,以便仅保留整数值。

var integers = list.OfType(); 

LINQ 提供的扩展方法称为 OfType()。它返回一个经过过滤的此类条目列表。在本例中,列表被过滤为仅包含 int 类型的元素。现在只有第一个列表中的整数值出现在整数变量中。

第 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 list = new List { "Tutpoints", 100, "LINQ", 18, "50", 20, 'A', 34 };      var integers = list.OfType();      var sortedIntegers = integers.OrderBy(x => x);      Console.WriteLine("Sorted integer values are:");      foreach (int integer in sortedIntegers) {         Console.WriteLine(integer);      }   }} 

输出

Sorted integer values are:182034100

结论

在这篇文章中,我们向您展示了如何在 C# 中使用 LINQ 从对象列表中查找整数并对它们进行排序。使用 OfType() 函数从列表中删除除整数值之外的所有值后,我们使用 OrderBy() 方法对整数进行排序。最后,我们使用打印命令将排序后的整数值显示到控制台。我们已经了解了算法,也看到了代码。我们希望本文可以帮助您增强对该主题的了解和理解。

以上就是C# 程序从对象列表中查找整数并使用 LINQ 对它们进行排序的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:54:11
下一篇 2025年12月17日 10:54:18

相关推荐

  • C# 中的网络

    .NET Framework 具有分层、可扩展和托管的网络服务实现。您可以轻松地将它们集成到您的应用程序中。使用System.Net;命名空间。 让我们看看如何访问 Uri 类:在 C# 中,它提供统一资源标识符 (URI) 的对象表示 – Uri uri = new Uri(“http…

    好文分享 2025年12月17日
    000
  • C# 如何从 URL 下载文件?

    可以使用网络客户端从URL下载文件。它可以在 System.Net 中使用命名空间。 WebClient 类提供了发送数据或接收数据的常用方法来自由 URI 标识的任何本地、内联网或 Internet 资源。 Web 客户端可以称为应用程序或 Web 浏览器(例如 Google Chrome、Int…

    2025年12月17日
    000
  • C# 中哈希表和字典的区别

    哈希表和字典都是用于存储数据的数据结构类型。这两种数据结构都以键值对的形式存储数据。 根据它们的关键特征之间的差异,我们可以区分 HashTable 和 Dictionary,如下 – Sr.编号 键 哈希表 字典 1 字典 1 td>定义HashTable 是非泛型集合,用于以键…

    2025年12月17日
    000
  • C# 中相当于 Java 的 isInstance() 的是什么?

    java.lang.Class.isInstance() 确定指定的 Object 是否与赋值兼容该类表示的对象 Java 的 isInstance() 方法在 C# 中相当于 IsAssignableFrom()。 isInstance() 等价的另一种最简单的方法是 – bool r…

    2025年12月17日
    000
  • 如何在 LINQ C# 编程中同时使用 Take 和 Skip 运算符

    我们正在创建 Employee 类的两个实例,e 和 e1。 e 被分配给e1。两个对象都指向同一个引用,因此我们将得到 true对于所有的Equals,预期输出。 在第二个案例中,我们可以观察到,尽管属性值相同Equals返回false。基本上,当参数引用不同的对象时等于不检查值并始终返回 fal…

    2025年12月17日
    000
  • C# 中交换字符串的字符

    要交换字符串的字符,请使用 Select 方法。 首先,假设我们的字符串是 – string str = “PQRQP”; 现在,您需要将每次出现的 P 与 Q 交换,将 Q 与 P 交换 – str.Select(a=> a == ‘P’ ? ‘Q’ : (a==’Q…

    2025年12月17日
    000
  • 如何在C#接口中声明成员函数?

    在C#中声明接口的成员函数 − public interface InterfaceName { // interface members void InterfaceMemberOne(); double InterfaceMembeTwo(); void InterfaceMemberThree…

    2025年12月17日
    000
  • 什么是浅复制以及它与 C# 中的深复制有何不同?

    浅拷贝 − 浅拷贝是指拷贝一个对象的”主要”部分,但不拷贝内部的部分objects. The “inner objects” are shared between the original object and its copy. The proble…

    2025年12月17日
    000
  • C# 中的锯齿数组是什么?

    交错数组是 C# 中的数组的数组。您可以声明并初始化它 – int[][] rank = new int[1][]{new int[]{5,3,1}}; 以下示例展示了如何在 C# 中使用锯齿状数组 – 示例 using System;namespace Program { …

    2025年12月17日
    000
  • C# 中的集合

    C# 中的集合是 HashSet。 C# 中的 HashSet 消除了数组中的重复字符串或元素。在C#中,它是一个优化的集合集合 声明HashSet – var h = new HashSet(arr1); 上面,我们已经在 HashSet 中设置了已经声明的数组 arr1。 现在将其设…

    2025年12月17日
    000
  • C#中如何捕获内存不足异常?

    当 CLR 无法分配所需的足够内存时,会发生 System.OutOfMemoryException。 System.OutOfMemoryException 继承自 System.SystemException 类。 设置字符串 – string StudentName = “Tom”…

    2025年12月17日
    000
  • C# 程序检查路径是目录还是文件

    简介 让我们学习如何编写 C# 程序来检查路径是目录还是文件。目录,也称为文件夹,是计算机上可以保存文件的位置。除了文件之外,目录还包含其他目录或快捷方式。 文件是驱动器上的数据集合,具有唯一标识符和目录路径。当打开文件进行查看或写入时,它会转换为流。流只是遍历通信路径的字节序列。 文件与目录 文件…

    2025年12月17日
    000
  • C# 反转字符串的程序

    我们的示例字符串是 – myStr = “Tom”; 要反转字符串,首先找到字符串的长度 − // find string lengthint len;len = myStr.Length – 1; 现在,使用 while 循环,直到长度大于 0 – while (len &…

    2025年12月17日
    000
  • C# 中的静态方法与非静态方法

    Declare a member function as static. Such functions can access only static variables. The static functions exist even before the object is created. A …

    2025年12月17日
    000
  • C# 中的多重继承是什么?

    C#不支持多重继承的使用,但可以使用接口来实现。 下面是使用接口继承的实现。创建两个接口 – public interface BaseOne { void display();}public interface BaseTwo { void display();} 现在像设置派生类一样…

    2025年12月17日
    000
  • 如何在C#中声明和实例化委托?

    C# 委托类似于 C 或 C++ 中的函数指针。委托是一个引用类型变量,它保存对方法的引用。可以在运行时更改引用。 声明委托的语法 – delegate 现在让我们看看如何在 C# 中实例化委托。 声明委托类型后,必须使用 new 关键字创建委托对象并将其与特定方法关联。创建委托时,传递…

    2025年12月17日
    000
  • 什么是 Kestral C# Asp.net Core?

    Kestrel 是 ASP.NET Core 的跨平台 Web 服务器。 .NET Core 支持的所有平台和版本都支持它。 它默认作为内部服务器包含在 ASP.NET Core 中。 Kestrel 本身可以用作边缘服务器,即面向 Internet 的 Web 服务器,可以直接处理来自客户端的传入…

    2025年12月17日
    000
  • C# 中的重写和隐藏有什么区别?

    以下是重写和隐藏之间的区别 – 隐藏重新定义了完整的方法,而重写仅重新定义了方法的实现。 在重写中,您可以使用子类的对象重写方法来访问基类。影子无法访问子类方法。 阴影也称为方法隐藏。父类的方法可供子类使用,无需在遮蔽中使用 override 关键字。子类有自己版本的相同函数。 在重写下…

    2025年12月17日
    000
  • 检查 HashTable 集合是否为空的 C# 程序

    C#中的Hashtable集合是根据键的哈希码组织的键值对的集合。哈希码是使用哈希码函数计算的。 哈希表中的每个元素都是具有唯一键的键值对。键也必须是非空的。值可以为空和重复。 在本文中,我们将讨论如何检查哈希表集合是否为空。 如何检查哈希表集合是否为空? C#中实现哈希表集合的类是Hashtabl…

    2025年12月17日
    000
  • 将一个哈希表中的项目替换为另一个哈希表中的 C# 程序

    C# 中的哈希表集合是基于键的哈希码组织的键值对的非泛型集合。键用于访问哈希表集合中的元素。散列可以帮助我们有效地检索数据并消除对昂贵的数据搜索技术的需要。散列技术使用密钥本身来定位数据。该哈希表键是不可变的,并且哈希表中不允许出现重复的条目。 Hashtable类定义在System.Collect…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信