C# 判断集合中一个值第二次出现的位置,并从当前位置之前分割出新的集合
时间: 2024-03-10 07:46:26 浏览: 132
可以使用 C# 中的 List<T> 类型来实现该功能。具体实现步骤如下:
1. 定义一个 List<T> 类型的集合,将需要操作的数据添加到集合中。
2. 遍历集合中的每个元素,使用 IndexOf 方法查找当前元素在集合中第一次出现的位置和最后一次出现的位置。
3. 如果当前元素在集合中出现了两次及以上,就从当前元素在集合中第二次出现的位置开始,将剩余的元素分割成一个新的集合。
4. 重复上述步骤,直到遍历完整个集合。
下面是示例代码:
```csharp
List<int> list = new List<int> { 1, 2, 3, 4, 5, 2, 6, 7, 8, 2 };
int currentIndex = 0;
while (currentIndex < list.Count)
{
int firstIndex = list.IndexOf(list[currentIndex]);
int lastIndex = list.LastIndexOf(list[currentIndex]);
if (firstIndex != lastIndex)
{
List<int> subList = list.GetRange(firstIndex + 1, lastIndex - firstIndex - 1);
// do something with the subList
currentIndex = lastIndex;
}
currentIndex++;
}
```
上述代码中,我们首先定义了一个 List<int> 类型的集合,然后使用 while 循环遍历集合中的每个元素。在循环体中,我们使用 IndexOf 和 LastIndexOf 方法查找当前元素在集合中第一次出现的位置和最后一次出现的位置。如果当前元素在集合中出现了两次及以上,就使用 GetRange 方法从当前元素在集合中第二次出现的位置开始,将剩余的元素分割成一个新的集合。最后,我们将当前元素的索引设置为最后一次出现位置的索引,以便在下一次循环中跳过已处理的元素。
阅读全文