📅  最后修改于: 2023-12-03 14:59:43.119000             🧑  作者: Mango
LINQ是Language Integrated Query的缩写,是一个支持在.NET语言中使用查询的技术。它可以查询各种数据源,包括对象、集合、数据库和XML等。本文将介绍如何使用LINQ来计算特定扩展名的文件。
下面是一个示例程序,通过使用LINQ,计算包含指定扩展名的所有文件的总大小。
using System;
using System.IO;
using System.Linq;
class Program
{
static void Main()
{
string folderPath = @"C:\Users\me\Documents";
string extension = ".txt";
var query = from file in new DirectoryInfo(folderPath).GetFiles()
where file.Extension.ToLower() == extension
select file.Length;
long totalSize = query.Sum();
Console.WriteLine($"Total size of {extension} files in {folderPath} is {totalSize} bytes.");
Console.ReadLine();
}
}
以上代码中,我们使用DirectoryInfo
和GetFiles()
方法获取指定文件夹中的所有文件。然后,使用where
子句筛选出扩展名与指定值相匹配的文件。最后,通过select
子句选取符合条件的文件的大小,并使用Sum()
方法将它们的大小相加以计算总大小。
让我们逐一解析上述代码:
folderPath
和一个表示文件扩展名的字符串变量extension
。string folderPath = @"C:\Users\me\Documents";
string extension = ".txt";
DirectoryInfo
构造函数实例化一个表示指定文件夹的对象,并调用GetFiles()
方法获取该文件夹中的所有文件,将其赋值给一个文件数组file
。from file in new DirectoryInfo(folderPath).GetFiles()
where
子句选取扩展名与指定值相匹配的文件,忽略大小写。where file.Extension.ToLower() == extension
select
子句选取符合条件的文件的大小。select file.Length
select
选择出的文件大小进行求和,并赋值给变量totalSize
。long totalSize = query.Sum();
Console.WriteLine($"Total size of {extension} files in {folderPath} is {totalSize} bytes.");
Console.ReadLine();
本篇文章介绍了如何使用LINQ来计算特定扩展名的文件。我们使用了DirectoryInfo
和GetFiles()
方法来获取指定文件夹中的所有文件,然后使用LINQ的where
子句选取符合条件的文件,并使用select
子句选取符合条件的文件的大小。最后,通过Sum()
方法将它们的大小相加以计算总大小。学习和使用LINQ可以大大简化我们的代码和提高我们的开发效率。