IT박스

배열에서 특정 항목의 인덱스 가져 오기

itboxs 2020. 11. 20. 08:44
반응형

배열에서 특정 항목의 인덱스 가져 오기


배열의 인덱스를 검색하고 싶지만 배열의 실제 값의 일부만 알고 있습니다. 예를 들어 저자 이름을 배열에 동적으로 저장하고 있습니다. "author = 'xyz'"배열 항목의 인덱스를 찾고 싶습니다. 저자와 같은 것을 포함하는 방법은 가치 부분을 모릅니다.


FindIndex 를 사용할 수 있습니다.

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

편집 : 나는 당신이 문자열의 배열을 가지고 있음을 알았습니다, 당신은 일치하는 모든 코드를 사용할 수 있습니다. 여기에 간단한 포함 예제가 있습니다.

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

정규 표현식을 사용하여 일치해야 할 수도 있습니다 .


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


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

이전 답변은 검색중인 정확한 값을 알고있는 경우에만 작동합니다. 질문에는 부분적인 값만 알고 있다고 나와 있습니다.

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

"xyz"를 포함하는 첫 번째 항목의 인덱스를 반환합니다.


FindIndex 확장

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

용법

int[] array = { 9,8,7,6,5 };

var index = array.FindIndex(i => i == 7);

Console.WriteLine(index); // Prints "2"

여기에 바이올린이 있습니다.


보너스 : IndexOf Extension

나는 질문을 제대로 읽지 않고 이것을 처음 썼다.

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

용법

int[] array = { 9,8,7,6,5 };

var index = array.IndexOf(7);

Console.WriteLine(index); // Prints "2"

여기에 바이올린이 있습니다.

참고 URL : https://stackoverflow.com/questions/4388600/getting-the-index-of-a-particular-item-in-array

반응형