none
Como saber el numero mas repetido en un arreglo Visual studio 2012 , VB form RRS feed

  • Pregunta

  • Buenas, queria saber como encontrar el numero mas repetido en un arreglo..
    ejemplo:

    Dim datos(5) as integer

    datos(0) = 1

    datos(1) = 1

    datos(2) = 1

    datos(3) = 1

    datos(4) = 2

    datos(5) = 3

    gracias de antemano..

    domingo, 3 de julio de 2016 15:49

Respuestas

  • Rauljose,

    Tienes varias formas de obtener el resultado que esperas, una de ellas es haciendo una consulta a la colección de elementos con LinQ To Objects.

    Dim numeros As Integer() = New Integer() {1, 1, 1, 1, 2, 3, 4, 4, 4, 4, 4}
    
    Dim numeroMayorAparicion = (From n In numeros
                                          Group n By n Into g = Group
                                          Select Numero = n, Cuenta = g.Count()).OrderByDescending(Function(n) n.Cuenta).Take(1).FirstOrDefault()
    
    MessageBox.Show(String.Format("El número con mayor aparición es {0}", numeroMayorAparicion.Numero))

    domingo, 3 de julio de 2016 16:47
  • Hola Rauljose,

    También puedes usar expresiones Lambda.

    'N° más repetido
    Dim nmr As Integer = datos.GroupBy(Function(x) x).OrderByDescending(Function(g) g.Count()).First().First()
    
    MessageBox.Show("N° más repetido : " & nmr.ToString)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 3 de julio de 2016 17:04

Todas las respuestas

  • Rauljose,

    Tienes varias formas de obtener el resultado que esperas, una de ellas es haciendo una consulta a la colección de elementos con LinQ To Objects.

    Dim numeros As Integer() = New Integer() {1, 1, 1, 1, 2, 3, 4, 4, 4, 4, 4}
    
    Dim numeroMayorAparicion = (From n In numeros
                                          Group n By n Into g = Group
                                          Select Numero = n, Cuenta = g.Count()).OrderByDescending(Function(n) n.Cuenta).Take(1).FirstOrDefault()
    
    MessageBox.Show(String.Format("El número con mayor aparición es {0}", numeroMayorAparicion.Numero))

    domingo, 3 de julio de 2016 16:47
  • Hola Rauljose,

    También puedes usar expresiones Lambda.

    'N° más repetido
    Dim nmr As Integer = datos.GroupBy(Function(x) x).OrderByDescending(Function(g) g.Count()).First().First()
    
    MessageBox.Show("N° más repetido : " & nmr.ToString)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 3 de julio de 2016 17:04