Ayuda en imprimir en un listbox las letras del abecedario que se repiten c#

Iniciado por Sempai15, 4 Julio 2016, 01:57 AM

0 Miembros y 1 Visitante están viendo este tema.

Sempai15

Tengo un problema, tengo que imprimir cuantas letras tiene una cadena del abecedario ejemplo: "Hola mundo"
a =1
b=0
c=0
d=1
e=0
f=0
g=0 y así sucesivamente
en formulario de windows

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Sempai15

Solo esto:
  string cadena, letra;
            int n, k;
            cadena = txtCadena.Text;
            n = cadena.Length;
            for (k = 0; k < n; k++) {

            }

Eleкtro

Puedes utilizar LINQ para simplificar el código.

Código original:
Código (vbnet) [Seleccionar]
Dim charset As Char() = "abcdefghijklmnopqrstuvwxyz".ToCharArray()
Dim str As String = "Hello World"

Dim charDict As New SortedDictionary(Of Char, Integer)(
    str.GroupBy(Function(c As Char) Char.ToLower(c)).
        ToDictionary(Function(group As IGrouping(Of Char, Char)) group.Key,
                     Function(group As IGrouping(Of Char, Char)) group.Count))

For Each c As Char In charset
   Dim count As Integer = charDict.SingleOrDefault(Function(pair As KeyValuePair(Of Char, Integer)) pair.Key = c).Value
   Console.WriteLine("Character: {0}; Count: {1}", c, count)
Next c


Traducción online a C#:
Código (csharp) [Seleccionar]
char[] charset = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
string str = "Hello World";

SortedDictionary<char, int> charDict =
   new SortedDictionary<char, int>(str.GroupBy((char c) => char.ToLower(c)).
                                       ToDictionary((IGrouping<char, char> @group) => @group.Key,
                                                    (IGrouping<char, char> @group) => @group.Count));

foreach (char c in charset) {
   int count = charDict.SingleOrDefault((KeyValuePair<char, int> pair) => pair.Key == c).Value;
   Console.WriteLine("Character: {0}; Count: {1}", Convert.ToString(c), Convert.ToString(count));
}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================


Resultado de ejecución:

Character: a; Count: 0
Character: b; Count: 0
Character: c; Count: 0
Character: d; Count: 1
Character: e; Count: 1
Character: f; Count: 0
Character: g; Count: 0
Character: h; Count: 1
Character: i; Count: 0
Character: j; Count: 0
Character: k; Count: 0
Character: l; Count: 3
Character: m; Count: 0
Character: n; Count: 0
Character: o; Count: 2
Character: p; Count: 0
Character: q; Count: 0
Character: r; Count: 1
Character: s; Count: 0
Character: t; Count: 0
Character: u; Count: 0
Character: v; Count: 0
Character: w; Count: 1
Character: x; Count: 0
Character: y; Count: 0
Character: z; Count: 0


PD: Puedes adaptar facilmente el código si quieres trabajar mayus y minus por igual.

Saludos!