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

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

介绍

本文中,我们将学习如何编写一个C#程序,从对象列表中查找整数并使用LINQ对它们进行排序。让我们来简单了解一下C#语言。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.IOrderedEnumerableOrderBy<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表达式,然后返回将作为排序key的值。

初始列表中的整数值现在以升序排列的形式出现在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()方法对整数进行了排序。最后,我们使用打印命令将已排序的整数值显示到控制台。我们已经过了算法,也看到了代码。我们希望这篇文章帮助你增加了对这个主题的知识和理解。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程