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