Zip в LINQ
Метод Zip берёт элементы с одинаковым индексом
из двух источников. Пар получается столько, сколько
элементов в более короткой последовательности.
Лишние элементы длинной отбрасываются.
В пары попадут "a-1" и "b-2". Символ "c" останется без пары:
string[] left = ["a", "b", "c"];
int[] right = [1, 2];
var q = left.Zip(right, (l, r) => $"{l}-{r}");
Console.WriteLine(q.Count());
Console.WriteLine(string.Join("|", q));
Если одна из последовательностей пуста, результат
пуст, а метод Count равен 0:
Console.WriteLine(Array.Empty<int>().Zip([1, 2], (a, b) => a + b).Count());
Сопоставьте два списка имён и оценок и выведите первую пару через двоеточие.