📅  最后修改于: 2023-12-03 15:09:03.568000             🧑  作者: Mango
在C#中,要获取列表中元素的索引,可以使用List的IndexOf方法。但是,在统一 5 中,由于List的实现不再是通用的,不能直接使用该方法。那么该怎么办呢?
下面将介绍在统一 5 中获取列表中元素索引的几种方法。
FindIndex是统一 5 中List类中的一个方法,该方法接受一个Predicate委托作为参数,该委托用于确定元素匹配的条件,并返回第一个匹配元素的索引。如果找不到匹配的元素,则返回-1。
下面是示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var list = new List<int> { 1, 2, 3, 4, 5 };
var index1 = list.FindIndex(x => x == 3);
var index2 = list.FindIndex(x => x == 6);
Console.WriteLine("Index of 3: {0}", index1);
Console.WriteLine("Index of 6: {0}", index2);
}
}
上述代码中,我们使用FindIndex方法查找列表中的元素3和6的索引,并输出结果。结果如下:
Index of 3: 2
Index of 6: -1
虽然在统一 5 中List类的实现不再是通用的,但仍然可以使用IndexOf方法。但是,在统一 5 中,List类不再提供这个方法,需要使用System.Linq命名空间中的扩展方法来实现。
下面是示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var list = new List<int> { 1, 2, 3, 4, 5 };
var index1 = list.IndexOf(3);
var index2 = list.IndexOf(6);
Console.WriteLine("Index of 3: {0}", index1);
Console.WriteLine("Index of 6: {0}", index2);
}
}
上述代码中,我们使用System.Linq命名空间中的扩展方法IndexOf查找列表中的元素3和6的索引,并输出结果。结果如下:
Index of 3: 2
Index of 6: -1
Find方法也是统一 5 中List类中的一个方法,该方法接受一个Predicate委托作为参数,该委托用于确定元素匹配的条件,并返回第一个匹配元素,如果找不到匹配的元素,则返回null。
下面是示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var list = new List<int> { 1, 2, 3, 4, 5 };
var item1 = list.Find(x => x == 3);
var item2 = list.Find(x => x == 6);
var index1 = list.IndexOf(item1);
var index2 = list.IndexOf(item2);
Console.WriteLine("Index of 3: {0}", index1);
Console.WriteLine("Index of 6: {0}", index2);
}
}
上述代码中,我们使用Find方法查找列表中的元素3和6,并使用IndexOf方法获取它们的索引,并输出结果。结果如下:
Index of 3: 2
Index of 6: -1
在统一 5 中,要获取列表中的元素索引,可以使用List中的FindIndex、Find方法,以及System.Linq命名空间中的扩展方法IndexOf。这些方法都提供了很好的灵活性和易用性,可以根据具体情况选择使用。