使用 LINQ 的 WHERE 子句查找数组中最大数的 C# 程序
简介
在本文中,我们将使用 LINQ 中的 WHERE 子句查找数组中的最大数。LINQ(语言集成查询)用于在 C# 语言中生成查询。LINQ 最棒的一点是它提供了一个统一的访问不同数据源(如数据库和 XML 文档)的方法。借助 LINQ,用户可以编写可读性更好的代码,并且代码更加简洁和美观。它还提供了其他功能,例如过滤、排序、分组数据甚至更改数据。在继续之前,我们将详细了解语言集成查询,即 LINQ,并且还将了解 LINQ 和命名空间下的不同子句,特别是我们将在代码中使用的那些子句。
语言集成查询
LINQ 是 .NET 框架的一个组件,它帮助用户以类型安全的方式访问它。LINQ 最棒的一点是它提供了一个统一的访问不同数据源(如数据库和 XML 文档)的方法。借助 LINQ,用户可以编写可读性更好的代码,并且代码更加简洁和美观。在其中,子句是查询表达式的不同部分,对它执行不同类型的操作。LINQ 下有不同类型的子句执行唯一的功能。下面解释了一些。
From 子句 − 它指定数据源,并且还指示任何数字的范围值。
Where 子句 − 它根据某些条件过滤任何值。
Select 子句 − 它投影数据源中的每个元素并将其转换为新形式。
Group 子句 − 它根据给定的条件对数据元素进行分组。
命名空间
这些是任何 C# 代码的组成部分。它充当任何 C# 代码甚至任何其他语言代码的支柱或基础。它是一种将相关的类、方法、文件、函数、结构和枚举分组在一起的方法。它也是组织代码的一种方式。在这里,我们将深入研究某些命名空间,并了解如何在代码中以实践的方式使用它们。
System.Text 命名空间 − 它用于执行字符和字符串编码操作。它包含可用于操作字符串和处理正则表达式的各种函数。例如,Encoding、StringBuilder、Decoder 和 Encoder 是在此命名空间下使用的一些方法。
System.Collections.Generic − 此命名空间提供了用于操作和存储数据的各种数据结构。它允许用户创建强类型集合以获得更好的类型安全性。在此命名空间下,一些常用的数据结构是 List、Dictionary、HashSet、Queue、Stack 和 LinkedList 是在此命名空间下一些常用的数据结构。
System.Linq − 此命名空间基本上用于查询数据源,如 Stack、Array 和 queue。它允许人们编写简洁的查询来访问数据库,类似于在 SQL 中编写的方式。我们经常看到的常用查询中有一些是 Select、Where、Join、Any、Skip、OrderBy、Take 等。
System.Threading.Tasks − 它基本上用于异步编程。简单来说,我们可以说它用于多程序设计。多个任务可以在后台保持运行,而不会影响代码的主要功能。一些常用的类型和类是 task、parallel、cancellation token 等。
算法
步骤 1 − 首先,我们需要有一个可以存储在数组中的整数数组。此数组将是我们的输入参数,可用于执行多个操作。除了数组之外,我们还有一个也将作为输入的值。我们必须打印所有大于它的数字。
步骤 2 − 现在,借助 FOR 循环,我们可以计算元素的总和。我们将总和存储在一个变量中。
步骤 3 − 现在,使用 where 函数检查大于 value 变量的数字。
步骤 4 − 通过使用 LINQ 查询,我们将所有大于 value 变量的数字存储在迭代器中。
步骤 5 − 现在,我们将使用 foreach 循环遍历迭代器,我们可以在 C# 语言中使用它。
步骤 6 − 最后,当我们使用 foreach 循环遍历时,我们会按顺序打印元素。
步骤 7 − 我们在输出控制台中得到所需的输出。
示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//these namespaces are declared in advance to make sure the related function work in order.
class Tutorials_point{
//declare class first.
static void Main() {
int[] arr = { 10,200,23, 50, 30,40};
//Here, we are having a set of numbers stored in an array as input.
// below we also have a value above which are the numbers will be printed
var answer = from value in arr where value > 30 select value;
//All the numbers which are greater than 100 are stored.
Console.WriteLine("The output is");
// Here, we are printing the desired output.
foreach (var i in answer) {
//we are iterating over using for each loop and printing all the numbers.
// The numbers printed are our desired output.
Console.Write(i.ToString() + " ");
}
}
}
输出
The output is 200 50 40
时间复杂度
在上面描述的代码中,我们可以看到我们正在使用 foreach 循环遍历数组。因此,我们可以推断出代码在最坏情况下时间复杂度可能是数组的大小。所以我们可以说上述算法的时间复杂度是 O(数组大小)。
结论
在本文中,我们广泛讨论了 LINQ 和我们在代码中使用的命名空间,以便人们能够更好地理解代码。为了更好地理解,我们还讨论了算法、代码及其时间复杂度。我们希望本文对您增强对 C# 的了解有所帮助。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP