C# 如何查找镜像副本的所有实例?

C# 如何查找镜像副本的所有实例?,c#,arrays,C#,Arrays,我一直在寻找一些关于如何做到这一点的答案 我试图做的是,获取一个数字数组,例如,{1,3,5,6,8,7,6,5,3,1}(但它将使用用户输入),找到镜像的这些数字的副本,并返回所述数组的一个实例中涉及的索引数量 我知道C#的基本知识,但不能掌握这项任务。不,这不是家庭作业。这是我自己的项目,以进一步提高我的知识 我目前还不了解我的部分代码,但非常感谢任何人能给我提供的帮助/建议。我想这就是你想要的。这将返回匹配索引的列表。 第一个=最后一个,第二个=倒数第二个,第三个=倒数第三个 var ma

我一直在寻找一些关于如何做到这一点的答案

我试图做的是,获取一个数字数组,例如,
{1,3,5,6,8,7,6,5,3,1}
(但它将使用用户输入),找到镜像的这些数字的副本,并返回所述数组的一个实例中涉及的索引数量

我知道C#的基本知识,但不能掌握这项任务。不,这不是家庭作业。这是我自己的项目,以进一步提高我的知识


我目前还不了解我的部分代码,但非常感谢任何人能给我提供的帮助/建议。

我想这就是你想要的。这将返回匹配索引的列表。 第一个=最后一个,第二个=倒数第二个,第三个=倒数第三个

var matches = new List<Tuple<int, int>>();

var array = new [] { 0, 1, 2, 3, 4, 5, 3, 2, 1, 0 };

if (array.Length % 2 != 0)
    throw new Exception("Array must have an even amount of elements");

for (int i = 0; i < array.Length / 2; i++)
{
    if (array[i] == array[array.Length - 1 - i])
    {
        matches.Add(new Tuple<int, int>(i, array.Length - 1 - i));
    }
}

var firstMatchingIndex1 = matches[0].Item1;
// This will be 0

var firstMatchingIndex2 = matches[0].Item2;
// This will be 9
var matches=newlist();
var数组=新[]{0,1,2,3,4,5,3,2,1,0};
if(array.Length%2!=0)
抛出新异常(“数组必须有偶数个元素”);
for(int i=0;i

您可以更进一步,使用自定义类捕获匹配的实际值(例如index1为1,index2为8,值为1)。

请给出预期结果,我仍然不清楚“镜像副本”的定义/解释/示例这会给这个问题一个机会…您是否希望返回
1,3,5,6
?即,当反转时,相同索引中的相同整数?
int[] array =  {1, 3, 5, 6, 8, 7, 6 ,5, 3, 1};

//holds left index of mirrored pair, you can easily find the right one
var mirroredIndexes = new List<int>();
var length = array.Length;

for (int i = 0; i < length / 2; i++)
{
    if(array[i] == array[length - i - 1])
        mirroredIndexes.Add(i);
}

mirroredIndexes.ForEach(Console.WriteLine);
Console.WriteLine ("total of {0} mirrored pairs ({1})", 
                       mirroredIndexes.Count, 
                       string.Join(", ", mirroredIndexes.Select(i => array[i])));
0
1
2
3
total of 4 mirrored pairs (1, 3, 5, 6)