Getting the index of a particular item in array

前端 未结 5 977
猫巷女王i
猫巷女王i 2020-11-28 07:32

I want to retrieve the index of an array but I know only a part of the actual value in the array.

For example, I am storing an author name in the array dynamically sa

相关标签:
5条回答
  • 2020-11-28 08:12

    The previous answers will only work if you know the exact value you are searching for - the question states that only a partial value is known.

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

    This will return the index of the first item containing "xyz".

    0 讨论(0)
  • 2020-11-28 08:25

    You can use FindIndex

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

    Edit: I see you have an array of string, you can use any code to match, here an example with a simple contains:

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

    Maybe you need to match using a regular expression?

    0 讨论(0)
  • 2020-11-28 08:25
         int i=  Array.IndexOf(temp1,  temp1.Where(x=>x.Contains("abc")).FirstOrDefault());
    
    0 讨论(0)
  • 2020-11-28 08:28

    FindIndex Extension

    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"
    

    Here's a fiddle with it.


    Bonus: IndexOf Extension

    I wrote this first not reading the question properly...

    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"
    

    Here's a fiddle with it.

    0 讨论(0)
  • 2020-11-28 08:39

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

    0 讨论(0)
提交回复
热议问题