Ottenere l’indice di un particolare elemento dell’array

voglio recuperare l’indice di un array, ma io so solo una parte del valore reale della matrice per esempio io sono di memorizzare il nome dell’autore dell’array dinamicamente dire “autore = ‘xyz'”
voglio trovare l’indice dell’elemento dell’array contenente qualcosa come autore come non so il valore parte come fare.

  • Può farci un esempio?
  • stai usando Array o string []?
  • il suo un string[] e voglio trovare qualcosa di Matrice.Indexof(arrFilter, “autore”), qui l’autore non è il valore completo piuttosto una parte del valore completo
  • possibile duplicato di Individuare l’indice di un valore in un array
InformationsquelleAutor Mac | 2010-12-08

 

5 Replies
  1. 121

    È possibile utilizzare FindIndex

     var index = Array.FindIndex(myArray, row => row.Author == "xyz");

    Edit: vedo che hai un array di stringa, è possibile utilizzare il codice a partita, qui un esempio con un semplice contiene:

     var index = Array.FindIndex(myArray, row => row.Contains("Author='xyz'"));

    Forse avete bisogno di corrispondenza con una espressione regolare?

    • Si potrebbe anche fare questo array estensioni per un uso più facile e IntelliSense.
  2. 11

    provare Array.FindIndex(myArray, x => x.Contains("author"));

    • Sembra che manca la parentesi destra.
  3. 7

    Risposte precedenti funziona solo se si conosce l’esatto valore che si sta cercando per la questione afferma che solo un parziale di cui è noto il valore.

    Array.FindIndex(authors, author => author.Contains("xyz"));

    Questo sarà il ritorno l’indice del primo elemento contenente “xyz”.

  4. 1

    FindIndex Estensione

    static class ArrayExtensions
    {
        public static int FindIndex<T>(this T[] array, Predicate<T> match)
        {
            return Array.FindIndex(array, match);
        }
    }

    Utilizzo

    int[] array = { 9,8,7,6,5 };
    
    var index = array.FindIndex(i => i == 7);
    
    Console.WriteLine(index); //Prints "2"

    Ecco una giocherellare con esso.


    Bonus: IndexOf Estensione

    Ho scritto questo prima di non leggere correttamente alla domanda…

    static class ArrayExtensions
    {
        public static int IndexOf<T>(this T[] array, T value)
        {
            return Array.IndexOf(array, value);
        }   
    }

    Utilizzo

    int[] array = { 9,8,7,6,5 };
    
    var index = array.IndexOf(7);
    
    Console.WriteLine(index); //Prints "2"

    Ecco una giocherellare con esso.

Lascia un commento