📅  最后修改于: 2023-12-03 14:51:15.684000             🧑  作者: Mango
在C#中,可以通过许多方法来查找给定序列的第一个元素的索引。以下是一些常见的方法。
可以使用List
int[] numbers = { 1, 3, 4, 7, 8 };
int firstEvenIndex = Array.IndexOf(numbers, numbers.FirstOrDefault(n => n % 2 == 0));
Console.WriteLine(firstEvenIndex);
输出:
2
这里使用了Linq的FirstOrDefault函数来查找第一个偶数并传递给IndexOf函数。
还可以使用List
List<string> names = new List<string> { "Alice", "Bob", "Charlie", "Sasha" };
int firstSNameIndex = names.FindIndex(name => name.StartsWith("S"));
Console.WriteLine(firstSNameIndex);
输出:
3
还可以编写自己的函数来查找指定条件的元素的索引。例如,以下代码查找字符串数组中第一个包含特定子字符串的索引:
string[] strings = { "apple", "banana", "cherry", "date" };
int firstIndex = FindIndex(strings, s => s.Contains("an"));
Console.WriteLine(firstIndex);
public static int FindIndex<T>(T[] array, Func<T, bool> predicate)
{
for (int i = 0; i < array.Length; i++)
{
if (predicate(array[i]))
{
return i;
}
}
return -1;
}
输出:
1
这里定义了一个名为FindIndex的静态函数,通过遍历数组并应用给定的谓词来查找第一个满足条件的元素的索引。
以上是在C#中查找指定序列的第一个元素的索引的一些常见方法。尽管有很多其他方法,但这些应该能够满足大多数需求。