使用 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# 的了解。

更新于: 2023-03-31

162 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告