Getting the index of a particular item in array

C#Arrays

C# Problem Overview


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 say "author = 'xyz'".
Now I want to find the index of the array item containing it, since I don't know the value part.

How to do this?

C# Solutions


Solution 1 - C#

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?

Solution 2 - C#

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

Solution 3 - C#

     int i=  Array.IndexOf(temp1,  temp1.Where(x=>x.Contains("abc")).FirstOrDefault());
     

Solution 4 - C#

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".

Solution 5 - C#

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMacView Question on Stackoverflow
Solution 1 - C#GvSView Answer on Stackoverflow
Solution 2 - C#rpfaracoView Answer on Stackoverflow
Solution 3 - C#TalentTunerView Answer on Stackoverflow
Solution 4 - C#TabbyCoolView Answer on Stackoverflow
Solution 5 - C#Mikael Dúi BolinderView Answer on Stackoverflow