使用 LINQ 并行生成奇数的 C# 程序

csharpserver side programmingprogramming更新于 2025/9/24 4:32:00

简介

本文将教您如何创建使用 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# 的了解有所帮助。


相关文章