je veux récupérer l'index d'un tableau, mais je ne connais qu'une partie de la valeur réelle dans le tableau. Par exemple, je stocke le nom de l'auteur dans le tableau de manière dynamique. "auteur = 'xyz'" contenant quelque chose comme l'auteur car je ne connais pas la partie valeur comment procéder.
Vous pouvez utiliser FindIndex
var index = Array.FindIndex(myArray, row => row.Author == "xyz");
Edit: Je vois que vous avez un tableau de chaînes, vous pouvez utiliser n’importe quel code pour correspondre, voici un exemple avec un simple contient:
var index = Array.FindIndex(myArray, row => row.Contains("Author='xyz'"));
Peut-être avez-vous besoin de faire correspondre en utilisant un expression régulière ?
essayez Array.FindIndex(myArray, x => x.Contains("author"));
int i= Array.IndexOf(temp1, temp1.Where(x=>x.Contains("abc")).FirstOrDefault());
Les réponses précédentes ne fonctionneront que si vous connaissez la valeur exacte que vous recherchez - la question indique que seule une valeur partielle est connue.
Array.FindIndex(authors, author => author.Contains("xyz"));
Cela renverra l'index du premier élément contenant "xyz".
static class ArrayExtensions
{
public static int FindIndex<T>(this T[] array, Predicate<T> match)
{
return Array.FindIndex(array, match);
}
}
Usage
int[] array = { 9,8,7,6,5 };
var index = array.FindIndex(i => i == 7);
Console.WriteLine(index); // Prints "2"
J'ai écrit cette première en ne lisant pas la question correctement ...
static class ArrayExtensions
{
public static int IndexOf<T>(this T[] array, T value)
{
return Array.IndexOf(array, value);
}
}
Usage
int[] array = { 9,8,7,6,5 };
var index = array.IndexOf(7);
Console.WriteLine(index); // Prints "2"