如何在C#中使用foreach循环比较两个数组值

时间:2017-02-04 17:23:25

标签: c# foreach

我想将此for循环转换为for-each循环

for(int i=0; i<arr.Length; i++)
{
    if(arr[i]==arr[i+1]
    {
      // Do Something
    }
}

3 个答案:

答案 0 :(得分:2)

是的,你可以用一些额外的代码来做到这一点。但是有问题的代码会破裂。条件i<arr.Length应替换为i<arr.Length-1

下面的代码将与foreach循环一起使用(假设你的数组是一个整数数组)

            int previousValue = arr[0];
            bool isEntered = false;
            foreach (int currentValue in arr)
            {
                if(isEntered)
                {
                    if(previousValue == currentValue)
                    {
                        //do something
                    }
                }
                previousValue = currentValue;
                isEntered = true;
            }

答案 1 :(得分:1)

你可以试试这个

        int index=0;
        foreach (var item in arr)
        {
            index++;
            if (item == arr[index])
                Console.WriteLine("{0} = {1}", item, arr[index]);

            if (index == arr.Count()-1) break;
        } 

答案 2 :(得分:0)

您必须检查您的数组是否至少包含1个元素

        var previousItem = arr[0];
        foreach (var item in arr.Skip(1))
        {
            if (previousItem == item)
            {
                // Do Something
            }
            previousItem = item;
        }