使用 LINQ 并行生成奇数的 C# 程序
简介
本文将教您如何创建使用 LINQ 并行生成奇数的 C# 程序。让我们快速了解一下该语言。桌面、在线和移动应用程序的创建通常使用 C# 编程语言。C# 的优势之一是语言集成查询 (LINQ)。开发人员可以快速访问来自许多来源的数据,包括数组、集合和数据库。它为数据查询提供了通用语法,无论数据源是什么。由于 LINQ 和 SQL 的语法相似,开发人员可以快速理解和使用它们。
问题解释
为了进一步了解 LINQ,让我们编写一个程序来并行生成奇数。作为任何程序的第一步,必须确定问题描述和需求,在这个问题中,它提供了一系列查询对象的技术,这些技术使用 ParallelQuery {TSource} 使用 LINQ 并行生成奇数。此外,为了获得奇数,我们必须使用 where 和 select 子句
将使用两种 LINQ 方法完成此任务,如下所示 -
Select()
Where()
现在让我们简要讨论一下这两种方法。
Select()
执行查询时,查询表达式的 select 子句指定将生成的数据类型。将评估每个先前的子句以及 select 子句本身内找到的任何表达式以确定结果。查询语句的末尾必须有一个 select 子句。
Where()
使用查询表达式中的 where 子句从数据源中选择将要返回的元素。它将布尔条件(谓词)应用于每个源元素(由范围变量引用),然后返回条件为真的任何源元素。单个查询表达式可能有多个 where 子句,就像它可能包含多个谓词子表达式一样。
使用 Where 和 Select 的语法
IEnumerable<int> variable = ((ParallelQuery<int>)ParallelEnumerable.Range(start, stop)).Where(x => x % 2 != 0).Select(i => i);
假设我们必须在某个特定范围内并行生成奇数。因此,我们必须提及范围,即 (10, 21),并且必须找到它们之间的所有奇数。
输入
Range(start, stop)= Range(10, 21)
我们目前有具有定义范围的数字,我们必须生成此特定范围内的所有奇数。因此,我们的输出将类似于以下内容 −
输出
13 17 19 11 15
让我们在下一节中查看算法。
算法
以下步骤在 C# 程序中使用 LINQ 并行生成奇数。
步骤 1 − 首先,我们将包含范围,即 (10, 21)。
步骤 2 − 现在我们将在范围内编写并行查询的代码10 到 21。
步骤 3 − 取变量 x 检查奇数条件。
步骤 4 − 使用 Where 子句验证 x 除以 2 的模数不等于零。
步骤 5 − 现在取另一个变量 y。
步骤 6 − 使用 Select 子句确定 y 变量的值是否大于或等于变量的值(即 y)。
步骤 7 − 使用foreach 循环迭代奇数。
步骤 8 − 显示所有奇数。
算法的步骤非常简单;现在让我们看一下代码。
示例
让我们通过一个例子来理解问题 −
// C# 程序使用 LINQ 并行生成奇数
using System;
using System.Linq;
using System.Collections.Generic;
class TutorialPoint{
static void Main(string[] args){
// 在范围 10 到 11 内执行并行查询。
IEnumerable<int> odd = ((ParallelQuery<int>)ParallelEnumerable.Range(10, 11))
// 使用 Where 子句检查奇数条件。
.Where(x => x % 2 != 0)
//使用 Select 子句选择这些奇数。
.Select(y => y);
// 显示奇数
foreach (int n in odd){
Console.WriteLine(n);
}
Console.ReadLine();
}
}
输出
17 19 11 13 15
时间复杂度
使用 LINQ 并行生成奇数的 C# 程序的时间复杂度取决于输入范围的大小。
假设程序使用 LINQ 查询生成奇数,则查询的时间复杂度将为 O(n),其中 n 是要生成的奇数的数量。这是因为查询需要遍历数字序列以确定哪些是奇数。但是,当程序并行运行查询时,时间复杂度将取决于系统中可用的处理器或核心的数量,以及并行化实现的效率。如果程序使用良好的并行化算法,它可以将生成奇数的任务划分为较小的子任务,并将它们分布在多个处理器或核心上。这可以减少程序的总体执行时间。
因此,如果我们谈论使用 LINQ 并行生成奇数的 C# 程序的时间复杂度,则 LINQ 查询的时间复杂度为 O(n)。由于我们在循环中遍历一次,并且遍历的时间取决于输入中给出的数字,因此时间复杂度为 O(n)。
结论
在本文中,我们广泛讨论了并行生成奇数的 C# 程序。我们确保不会直接跳到代码,但我们已经讨论了语法,尤其是 where 子句。我们还讨论了算法。我们已经深入讨论了代码。我们已经生成了代码的相关输出。我们希望本文对增强您对 C# 的了解有所帮助。

