반응형
배열에서 특정 항목의 인덱스 가져 오기
배열의 인덱스를 검색하고 싶지만 배열의 실제 값의 일부만 알고 있습니다. 예를 들어 저자 이름을 배열에 동적으로 저장하고 있습니다. "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
반응형
'IT박스' 카테고리의 다른 글
Nexus Repository Manager OSS 3에서 아티팩트를 수동으로 배포하는 방법 (0) | 2020.11.20 |
---|---|
TransactionScope가 조기에 완료 됨 (0) | 2020.11.20 |
Swift에서 문자열 추가 (0) | 2020.11.20 |
Android Studio에서 JDK 버전을 지정하는 방법은 무엇입니까? (0) | 2020.11.20 |
파일 검색을위한 Emacs 명령 (0) | 2020.11.20 |