Programa C# para contar los archivos según la extensión usando LINQ

Dados los archivos, ahora contamos los archivos según la extensión usando LINQ. Estamos considerando todos los tipos de formatos de archivo como pdf, txt, xml y vamos a contar estos archivos según la extensión. Para eso, tenemos que conocer los siguientes métodos:

  • Path.GetExtension(): este método se utiliza para obtener una extensión de la ruta dada.
  • TrimStart(): este método se usa para cortar la ruta y comienza con la string dada.
  • ToLower(): este método se utiliza para convertir la string a inferior.
  • GroupBy(): esta función se utiliza para agrupar los datos que comparten el atributo común de la secuencia o lista especificada.
  • count(): este método se utiliza para obtener el número total de elementos de la secuencia dada.

Ejemplo:

Input: {myfile1.txt, myfile2.txt, myfile3.xml}
Output: 3 file ---> txt
        1 file ---> xml
        
Input: {file12.txt, file23.xml, file45.pdf}
Output: 1 file ---> txt
        1 file ---> xml
        1 file ---> pdf

Acercarse:

  • Cree una lista de archivos con diferentes extensiones.
  • Lea los archivos usando el método .GetExtension(). Luego convierta las extensiones de archivo a minúsculas para eliminar la distinción entre mayúsculas y minúsculas. Luego aplique la función de recorte antes de esto y use el método groupby para obtener las mismas extensiones de archivo en un grupo y luego use la función de conteo para contar las extensiones de archivo que ya están en el grupo.
var result = files.Select(f => Path.GetExtension(f)
                             .TrimStart('.').ToLower())
                             .GroupBy(y => y, (ex, excnt) => new
                             {
                                Extension = ex,
                                Count = excnt.Count()
                             });
                             
  • Mostrar el número de archivos y la extensión usando el número de archivos
foreach (var i in result)
{
    Console.WriteLine(i.Count + " File --> " + 
                      i.Extension + " format ");
}

Ejemplo:

C#

// C# program to count the files according 
// to their extension
using System;
using System.IO;
using System.Linq;
  
class GFG{
  
public static void Main()
{
      
    // Declare files with different extensions
    string[] files = { "171fa07058.txt", "171fa07058.pdf",
                       "171fa07058.xml", "171fa07058.txt", 
                       "171fa07058.txt", "171fa07058.xml" };
  
    // Group by files with an extension
    var result = files.Select(f => Path.GetExtension(f)
                             .TrimStart('.').ToLower())
                             .GroupBy(y => y, (ex, excnt) => new
                             {
                                Extension = ex,
                                Count = excnt.Count()
                             });
                               
    // Display the final result
    foreach (var i in result)
    {
        Console.WriteLine(i.Count + " File --> " + 
                      i.Extension + " format ");
    }
}
}

Producción:

3 File --> txt format 
1 File --> pdf format 
2 File --> xml format

Publicación traducida automáticamente

Artículo escrito por 171fa07058 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *