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

csharpserver side programmingprogramming更新于 2025/9/18 9:51:00

简介

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

问题陈述

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

OfType() 方法

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

语法

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

OrderBy() 方法

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

语法

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

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

示例

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

输入

["Tutpoints", 100, "LINQ", 18, "50", 20, 'A', 34]

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

输出

[18, 20, 34,100]

算法

步骤 1 − 创建对象列表

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

List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, "50", 20, 'A', 34};

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

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

var integers = list.OfType<int>();

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

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

输出

Sorted integer values are:
18
20
34
100

结论

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


相关文章