using System.Collections.Generic;
public static void Main()
List<FileList> fileList = new List<FileList>
new FileList { ID =1, Path = "C:\\7.pdf", Extension = "pdf"},
new FileList { ID =2, Path = "C:\\7.pdf", Extension = "png"},
new FileList { ID =3, Path = "C:\\7.pdf", Extension = "mp3"},
new FileList { ID =4, Path = "C:\\7.pdf", Extension = "pdf"},
new FileList { ID =4, Path = "C:\\7.pdf", Extension = "jpg"}
List<ExtensionsCategory> extensionCat = new List<ExtensionsCategory>
new ExtensionsCategory { ID =1, Extension = "mp3", Category = "Multimedia"},
new ExtensionsCategory { ID =2, Extension = "pdf", Category = "Document"},
new ExtensionsCategory { ID =3, Extension = "png", Category = "Photo"},
new ExtensionsCategory { ID =3, Extension = "jpg", Category = "Photo"}
var result = extensionCat.GroupBy(x => x.Category)
var files = fileList.Where(f => x.Select(z => z.Extension).Contains(f.Extension)).Count();
foreach (var item in result)
Console.WriteLine("Category: {0}, TotalFileCount: {1}", item.Category, item.TotalFileCount);
public int ID { get; set; }
public string Path { get; set; }
public string Extension { get; set; }
public class ExtensionsCategory
public int ID { get; set; }
public string Extension { get; set; }
public string Category { get; set; }