C#查找数组中相同的元素并输出索引
时间: 2024-09-10 13:28:22 浏览: 93
在C#中查找数组中相同的元素并输出它们的索引,可以通过以下步骤实现:
1. 创建一个新的数据结构来存储元素及其出现的索引。可以使用一个`Dictionary<int, List<int>>`,其中键是数组中的元素,值是一个包含该元素所有索引的列表。
2. 遍历数组,对于数组中的每个元素,检查它是否已经在字典中有记录:
- 如果元素已经存在于字典的键中,那么将当前索引添加到该键对应的列表中。
- 如果元素不在字典的键中,向字典中添加一个新的键值对,键是该元素,值是一个新的列表,包含当前元素的索引。
3. 最后,遍历字典,并输出每个键值对,即每个元素及其所有出现的索引。
下面是一个简单的代码示例:
```csharp
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
int[] array = { 1, 3, 2, 4, 2, 1, 3, 1 };
Dictionary<int, List<int>> elementIndices = new Dictionary<int, List<int>>();
// 遍历数组,查找元素并记录索引
for (int i = 0; i < array.Length; i++)
{
if (elementIndices.ContainsKey(array[i]))
{
elementIndices[array[i]].Add(i);
}
else
{
elementIndices[array[i]] = new List<int> { i };
}
}
// 输出元素及其索引
foreach (var pair in elementIndices)
{
if (pair.Value.Count > 1)
{
Console.WriteLine($"元素 {pair.Key} 出现了多次,索引为:{string.Join(", ", pair.Value)}");
}
}
}
}
```
这段代码会输出数组中重复出现的元素及其索引。注意,如果数组中的元素都是唯一的,那么字典中只会包含每个元素及其第一次出现的索引。
阅读全文