如何比较两个列表并仅获取第一个差异的索引

问题描述 投票:0回答:1

我有一个列表,我需要更新其中的值。 这些更新基于计算,因此每次迭代时值可能会发生变化,但每次迭代时列表的开头保持不变,只有最后一项发生变化。

为了节省处理时间,我想仅从第一个差异开始每次迭代。

样品:

        List<string> list = new List<string>();
        List<string> updatedList = new List<string>();

        list[0] = "A";
        updatedList[0] = "A";

        list[1] = "B";
        updatedList[1] = "B";

        list[2] = "C";
        updatedList[2] = "C";

        list[3] = "D";
        updatedList[3] = "E";

我想获得该样本的索引 3。

c# list comparison
1个回答
0
投票
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> list = new List<string> { "A", "B", "C", "D" };
        List<string> updatedList = new List<string> { "A", "B", "C", "E" };

        int firstDifferenceIndex = FindFirstDifferenceIndex(list, updatedList);

        Console.WriteLine("Index of the first difference: " + firstDifferenceIndex);
    }

    static int FindFirstDifferenceIndex(List<string> list1, List<string> list2)
    {
        for (int i = 0; i < list1.Count && i < list2.Count; i++)
        {
            if (list1[i] != list2[i])
            {
                return i;
            }
        }

        return Math.Min(list1.Count, list2.Count);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.