Поскольку С# 7 вводит кортежи значений, существует ли осмысленный сценарий, где они лучше подходят, чем кортежи?
Например, следующая строка
collection.Select((x, i) => (x, i)).Where(y => arr[y.i].f(y.x)).ToArray();
делает следующую строку
collection.Select((x, i) => new {x, i}).Where(y => arr[y.i].f(y.x)).ToArray();
избыточными.
Какой будет вариант использования, когда лучше использовать его по другому (по соображениям производительности или оптимизации)?
Очевидно, что если требуется более шести полей, кортежи не могут использоваться, но есть ли что-то более нюансированное ему?