使用 LINQ 估算文件大小的 C# 程序
简介
让我们尝试了解使用 LINQ 估算文件大小的 C# 程序。我们将了解 LINQ(语言集成查询)及其方法和类,以及如何在它们的帮助下获得所需的输出。
语言集成查询(又名 LINQ)用于在 C# 语言中生成查询。以前,我们必须使用其他关系语言,如 SQL 和 XML。它为 C# 语言或任何其他 .NET 语言提供了更多功能。在 LINQ 中查询数据库的语法与查询存储在数组中的数据的语法相同。
在本文中,我们将充分了解在 C# 中使用 LINQ 如何彻底改变它,以及它如何让用户更轻松地仅使用 C# 语言访问他们的数据,而无需依赖 SQL 等其他语言。
我们将首先了解 LINQ 及其一些方法,这将有助于我们理解代码。然后我们将了解代码及其算法。
语言集成查询 (LINQ)
.NET 框架的一部分 LINQ 使用户能够更轻松地以类型安全的方式检索数据。
LINQ 的最佳特性是它提供了一种从许多来源(包括数据库和 XML 文档)访问数据的单一方法。借助 LINQ,用户可以编写更易于理解、更简洁、更美观的代码。它还提供其他功能,如过滤、排序、分组数据甚至更改数据。
它属于系统。
此命名空间下通常有两种类型的类。第一个是 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 − 现在我们将使用数学计算四舍五入到小数点后 1 位的值。 round 函数。
步骤 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");
// 在这里,我们从目录或路径获取文件。
var avg= s.Select(file => new FileInfo(file).Length).Average();
// 在这里,我们获取文件的平均大小。
avg = Math.Round(avg / 10, 1);
// 现在我们将值四舍五入到小数点后 1 位
// 我们将该值存储在名为 avg 的变量中
Console.WriteLine("文件的大小为:",avg);
//最后,我们将显示平均文件大小。
}
}
输出
文件大小为 1 MB。
时间复杂度
在上面提到的使用 LINQ 计算文件大小的代码中,我们得到了多个方法和类,它们作为一个整体给出了我们所需的输出。所有这些方法的时间复杂度都是常数,在 Big-O 表示法中可以称为 O(1)。因此,整个代码的时间复杂度为 O(1)。
结论
在本文中,我们广泛讨论了使用 LINQ 计算文件大小的方法。我们没有直接跳到代码及其算法,而是首先讨论了什么是 LINQ、它是如何工作的、它的优点是什么以及我们为什么需要它。然后我们转向相应的方法、代码和算法,我们还了解了代码的时间复杂度。我们希望本文有助于增强您对 C# 的了解。

