Сравнить 2 текстовых файла

Есть 2 текстовых файла и надо вывести индексы всех строк, где есть отличия

Проблема моего кода:

Формат вывода не тот. Хотел сделать, чтобы выводилось не слово которое отличается, а именно номер строки которая отличается.

Например: текст в 1 файле "Hello world", а во 2-м файле "Hello"

И я хочу чтобы вместо world, вывелось "изменения в 1 строчке"

Мой код:

public List<string> Diff()
{
    var lines1 = File.ReadAllLines(_test1).ToArray();
    var lines2 = File.ReadAllLines(_test2).ToArray();
            
    var symDiff = lines1.Except(lines2).Union(lines2.Except(lines1)).ToList();

    return symDiff;
}

Ответы (2 шт):

Автор решения: tym32167

Как вариант

var lines1 = File.ReadAllLines(_test1);
var lines2 = File.ReadAllLines(_test2);

var len = Math.Max(lines1.Length, lines2.Length);

for (int i = 0; i < len; i++)
    if (lines1.Length <= i || lines2.Length <= i || string.CompareOrdinal(lines1[i], lines2[i]) != 0)
        Console.WriteLine($"изменения в {i + 1} строчке");
→ Ссылка
Автор решения: tym32167

Linq вариант (не проверял, проверяйте сами, но идея ясна)

public List<string> Diff()
{
    var lines1 = File.ReadAllLines(_test1);
    var lines2 = File.ReadAllLines(_test2); 
    
    return lines1.Zip(lines2, (x,y)=>(x,y))
        .Select((item, i) => (item, i))
        .Where(x=> string.CompareOrdinal( x.item.x, x.item.y) != 0)
        .Select(x=>$"изменения в {x.i + 1} строчке")
        .ToList();  
}
→ Ссылка