我有一个列表,我需要更新其中的值。 这些更新基于计算,因此每次迭代时值可能会发生变化,但每次迭代时列表的开头保持不变,只有最后一项发生变化。
为了节省处理时间,我想仅从第一个差异开始每次迭代。
样品:
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。
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);
}
}