使用LINQ查找对象列表中的整数并排序的C#程序
简介
在这篇文章中,我们将学习如何编写一个C#程序,从对象列表中查找整数,并使用LINQ对其进行排序。让我们简要概述一下该语言。C#编程语言经常用于开发桌面、Web和移动应用程序。语言集成查询(LINQ)是C#的强大功能之一。开发人员可以使用它快速查询来自各种来源的数据,包括数组、集合和数据库。它为开发人员提供了一种类似于SQL(结构化查询语言)的语法,并可以轻松进行数据操作和排序。无论数据源是什么,它都提供了一种标准的语法来查询数据。由于LINQ的语法与SQL类似,因此开发人员可以轻松学习和使用它。
问题陈述
在本文中,我们将演示如何使用C#中的LINQ从对象列表中查找整数并对其进行排序。必须从对象列表中提取整数和双精度浮点数,然后对其进行排序。因此,可以使用OfType()方法进行此操作,并使用OrderBy()函数对整数进行排序。让我们分别了解一下它们以及它们的语法:
OfType() 方法
它用于根据指定类型筛选IEnumerable的元素。如果提供的源为null,此方法将引发ArgumentNullException异常。
语法
public static System.Collections.Generic.IEnumerable<TResult> OfType<TResult>(this System.Collections.IEnumerable source);
OrderBy() 方法
此方法用于按升序对集合中的元素进行排序。如果提供的源为null,此方法也将引发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表达式,然后返回将作为排序键的值。
现在,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()方法对整数进行了排序。最后,我们使用打印命令将排序后的整数值显示到控制台中。我们已经了解了算法,也看到了代码。我们希望这篇文章能帮助您增强对该主题的知识和理解。