使用 LINQ 估算文件大小的 C# 程序
简介
让我们尝试了解使用 LINQ 估算文件大小的 C# 程序。我们将了解 LINQ(语言集成查询)及其方法和类,以及如何借助它们获得所需的输出。
语言集成查询,即 LINQ,用于在 C# 语言中生成查询。以前,我们必须使用其他关系语言,如 SQL 和 XML。它为 C# 语言或任何其他 .NET 语言提供了更强大的功能。在 LINQ 中查询数据库使用的语法与查询存储在数组中的数据相同。
在本文中,我们将全面了解 C# 中 LINQ 的使用如何彻底改变了它,以及它如何使用户能够仅使用 C# 语言轻松访问数据,而无需依赖其他语言,如 SQL。
我们将首先了解 LINQ 及其一些方法,这些方法将有助于我们理解代码。然后我们将理解代码及其算法。
语言集成查询 (LINQ)
LINQ 是 .NET 框架的一部分,它使用户能够以类型安全的方式更轻松地检索数据。
LINQ 最好的特性是它提供了一种单一方法来访问来自多个数据源的数据,包括数据库和 XML 文档。借助 LINQ,用户可以编写更易于理解、更简洁且更美观的代码。它还提供其他功能,例如过滤、排序、分组数据甚至更改数据。
它位于 System 命名空间下。
此命名空间下通常有两种类型的类。第一个是 Enumerable 类,它包含用于查询 IEnumerable<T> 的标准查询运算符。第二个也是最后一个是 Queryable 类,它包含对执行 IQueryable<T> 的对象进行操作的标准查询运算符。
与其他数据库语言(如 SQL)相比,考虑使用 LINQ 有很多优势。以下列出了一些:
它是一种简单的高级语言,并且比 SQL 更有序。
借助它的帮助,我们可以访问任何其他数据源,如 XML、实体和对象。
它支持查询表达式、lambda 表达式和扩展方法。
在没有 LINQ 的情况下,C# 程序必须包含用于访问任何数据的方法和对象。与 LINQ 提供的替代方案相比,该代码量太大,可读性太低。LINQ 提供了更好的代码,可以重用。它可以作为其他程序中的相同代码重用。使用的 LINQ 代码具有更好的可维护性,并且由于类型安全,错误较少。
在编译时执行完全类型检查,另一方面,错误可以在运行时检测到。
随着我们的深入,我们需要了解一些方法,这些方法将有助于更好地理解代码及其算法。
GetFiles - 它从作为输入参数给出的目录中返回文件名称。
Select − 它用于从指定的序列中获取单个值。
FileInfo − 它是一个类,提供用于复制、删除和执行许多其他操作的不同类型的方法和属性。
Math.Round 方法 − 此方法用于计算四舍五入的值。在我们的算法中,将四舍五入到的值为 1。
在理解代码和算法时,这些方法和类将具有最大的价值。它们为获得所需的输出奠定了基础。
算法
以下算法将全面了解使用 LINQ 估算文件大小的代码。我们将了解逐步方法,以便更深入地理解代码。
步骤 1 - 我们将使用 GetFiles 方法获取目录路径。我们将以字符串的形式存储路径。
步骤 2 − 现在我们将使用 File 方法选择文件。
步骤 3 − 现在我们将使用 Average() 函数计算文件的平均值。
步骤 4 − 现在我们将使用 Math.round 函数将值四舍五入到小数点后 1 位。
步骤 5 − 最后,我们将使用控制台写入行函数打印文件的大小。
步骤 6 − 最初在编码时,我们必须确保我们不会错过声明所需的命名空间 System.Linq。借助它,我们能够编写 LINQ 类和方法并生成所需的输出。
示例
using System; using System.Linq; using System.IO; class TutorialsPoint{ static void Main(string[] args){ string[] s= Directory.GetFiles("c:\A"); // Here, we are getting the file from the directory or path. var avg= s.Select(file => new FileInfo(file).Length).Average(); // Here we are getting the average size of the file. avg = Math.Round(avg / 10, 1); // Now we are rounding off our value to 1 decimal point // We are storing the value in a variable named avg Console.WriteLine("The size of the file is:",avg); //Finally we will display the average file size. } }
输出
The size of the file is 1 MB.
时间复杂度
在上面提到的使用 LINQ 计算文件大小的代码中,我们获得了多个方法和类,这些方法和类作为一个整体为我们提供了所需的输出。所有这些方法的时间复杂度都是常数,在大 O 表示法中可以称为 O(1)。因此,整个代码的时间复杂度为 O(1)。
结论
在本文中,我们广泛讨论了使用 LINQ 计算文件大小的方法。我们没有直接跳到代码及其算法,而是首先讨论了什么是 LINQ、它是如何工作的、它的优势是什么以及为什么我们需要它。然后我们转向相应的方法、代码和算法。我们还了解了代码的时间复杂度。我们希望本文有助于增强您对 C# 的了解。