木子屋 Dnawo's BLOG

C#使用LINQ查找同名文件示例

👤 dnawo 📅 2011-08-16 👁 4911 👍 0 💬 0 🔄 本站原创
1.文件结构

F:\test
├a
│└b.txt
├b.txt
└c.xls

2.C#代码

引用命名空间:
using System;
using System.IO;
using System.Linq;

代码一:使用IEnumerable<TSource>.GroupBy<TSource, TKey>
DirectoryInfo dir = new DirectoryInfo(@"F:\test");
if (dir.Exists)
{
    FileInfo[] files = dir.GetFiles("*.*", SearchOption.AllDirectories);
    var query = from item in files.GroupBy(f => f.Name).Where(g => g.Count() > 1)
                select new { Name = item.First().Name, Count = item.Count() };
    foreach (var item in query)
        Console.WriteLine("{0},{1}", item.Name, item.Count);
}

代码二:使用group...by...into...
DirectoryInfo dir = new DirectoryInfo(@"F:\test");
if (dir.Exists)
{
    FileInfo[] files = dir.GetFiles("*.*", SearchOption.AllDirectories);
    var query = from item in files
                group item by item.Name into g
                where g.Count() > 1
                select new { Name = g.First().Name, Count = g.Count() };
    foreach (var item in query)
        Console.WriteLine("{0},{1}", item.Name, item.Count);
}

3.测试结果

b.txt,2

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 淘宝助理导入数据库后店铺类目丢失解决方法 下一篇 → C#多线程编程笔记