Si tengo el siguiente array de cadenas:

string[] stringArray = {"one", "two", "three", "four"};

Hay una manera de obtener el primer y último elemento («uno», «cuatro») en C# a partir de la matriz, además de utilizar la matriz de indexación (stringArray[0], stringArray[3]), algo así como stringArray.Primera y stringArray.Última ?

Gracias.

  • ¿Por qué no desea utilizar la indexación?
  • yo sólo soy curiosidades si hay otra manera, si no voy a utilizar la indexación, ningún problema
  • Usted puede utilizar linq, pero sigue recibiendo con índice es mejor (por lo general, usted haría uso de la matriz.La longitud no 3 para el último)
  • El uso de indexación cuando usted tiene el lujo de una matriz de cadena con la indexación disponible. (Primer) y Last() tiene que recorrer la matriz y son menos eficientes.
  • Me gustaría hacer una stringArray[0] y stringArray[stringArray.Length]
  • (Primer) y Last() en realidad, no son menos eficientes; para un IList<T> como la fuente de Linq se encargará de optimizar y utilizar de indexación de todos modos
  • stringArray[stringArray.Length - 1] sí, mi error.

InformationsquelleAutor Adrian | 2011-09-12

5 Comentarios

  1. 34

    Uso de LINQ Primero() y Last() métodos.

    Además, ambos métodos tienen útil de sobrecarga que permite especificar una condición booleana para los elementos a ser considerados como el primero o el último.

  2. 6

    Hay stringArray.First() y stringArray.Last() como los métodos de extensión en el Sistema.Linq espacio de nombres.

    • Esto es útil, en mi caso el nombre de espacio no se ajuste por un tiempo.
  3. 6

    Primera

        Console.WriteLine(stringArray.First());
        Console.WriteLine(stringArray.ElementAt(0));
        Console.WriteLine(stringArray[0]);
        var stringEnum = stringArray.GetEnumerator();
        if (stringEnum.MoveNext())
            Console.WriteLine(stringEnum.Current);

    Última

        Console.WriteLine(stringArray.Last());
        if (stringArray.Any())
            Console.WriteLine(stringArray.ElementAt(stringArray.Count()-1));
        Console.WriteLine(stringArray[stringArray.Length -1]);
        var stringEnum = stringArray.GetEnumerator();
        string lastValue = null;
        while (stringEnum.MoveNext())
            lastValue = (string)stringEnum.Current;
        Console.WriteLine(lastValue);
    • Se ve como demasiado complicado solución para el problema simple
    • No es una solución. Sus muchas soluciones en el mismo bloque de código.
    • Lamentablemente lo siento, has pasado por alto. Creo que tiene sentido que de alguna manera separada de cada uno de los otros, de todos modos cool set +1
  4. 2

    Puede utilizar stringArray.GetUpperBound(0) para obtener el índice del último elemento.

    • Lo de la biblioteca es stringArray.GetUpperBound(0) se encuentra en?
    • msdn.microsoft.com/en-us/library/…
    • Usted me señaló el Array.GetUpperBound(0) método de clase. En el post se menciona la stringArray.GetUpperBound(0) método. SI algo así existe, no está en el estándar System lib
    • Hizo usted haga clic en el MSDN enlace que he publicado en el comentario de arriba?
    • Yup. Se va a la System.Array.GetUpperBound método de la página. Se promociona un stringArray.GetUpperBound método.

Dejar respuesta

Please enter your comment!
Please enter your name here