jueves, 11 de noviembre de 2010

Contar Palabras

 

Introducción

El objetivo del articulo es demostrar como Linq puede ayudar en una tarea tan simple como el trabajo con cadenas de texto.

En el ejemplo se contaran las palabras de un Textbox que sea coincidentes, al encontrar una repetida se mantendrá la cuenta y se mostrara al final en una lista

 

private void contar_Click(object sender, EventArgs e)
{
    //separo cada palabra
    string[] palabras = txtTexto.Text.Split(' ');

    //agrupo las palabras que se repiten 
    //y filtro solo las que tengan mas de una coincidencia
    var query = from item in palabras
                group item by item into g
                where g.Count() > 1
                select new
                {
                    Palabra = g.Key,
                    Cantidad = g.Count()
                };

    //limpio los items previos de la lista
    lvListado.Items.Clear();

    //agrego el resultado al listado
    foreach (var item in query)
    {
        ListViewItem row = new ListViewItem(item.Palabra);
        row.SubItems.Add(item.Cantidad.ToString());

        lvListado.Items.Add(row);
    }

}

 

[C#]
 

1 comentario: