Метод FindIndex
Метод FindIndex класса List<T>
принимает предикат и возвращает индекс первого
совпадения или -1. Есть перегрузки с началом поиска.
Синтаксис
int index = list.FindIndex(match);
int index = list.FindIndex(startIndex, match);
Пример
Давайте найдём индекс первого чётного:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
Console.WriteLine(nums.FindIndex(x => x % 2 == 0));
}
}
Результат выполнения кода:
1
Пример
Давайте начнём поиск с индекса 2:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {2, 4, 2, 5};
Console.WriteLine(nums.FindIndex(2, x => x == 2));
}
}
Результат выполнения кода:
2
Пример
Давайте получим -1, если условие ложно для всех:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
Console.WriteLine(nums.FindIndex(x => x > 10));
}
}
Результат выполнения кода:
-1
Пример
Давайте найдём индекс строки c:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> items = new List<string> {"a", "b", "c", "d", "e"};
Console.WriteLine(items.FindIndex(s => s == "c"));
}
}
Результат выполнения кода:
2
Смотрите также
-
метод
Find,
который возвращает сам элемент -
метод
IndexOf,
который ищет по значению -
метод
Exists,
который проверяет наличие по условию -
метод
BinarySearch,
который ищет в отсортированном списке