У меня возникла проблема, и я не уверен, что я что-то упустил или если это просто неуклюжий на C#.Сопоставление по двумерному массиву
У меня есть 2D-массив (Foo[,]
), и я хочу его сопоставить с Bar[,]
, используя только Func<Foo, Bar>
. В принципе, я хочу, чтобы экземпляр-функтор для T[,]
для любого заданного T
.
«Очевидный» способ - это, конечно же, просто построить новый массив с нуля, итерации по каждой колонке и столбцу и вручную применить функцию к ячейке. Я действительно хотел бы использовать LINQ для этого, хотя, потому что нет никаких оснований, это должно быть более сложным, чем
from cell in matrix
select f(cell)
или эквивалент matrix.Select(f)
.
Я не могу не думать, что я не могу быть первым, кто хотел это сделать, поэтому я задаюсь вопросом, есть ли что-то подобное встроенное, или лучше всего просто написать мои собственные расширения LINQ для 2D-массивы?
Написание кучи пользовательских расширений LINQ кажется самым простым и чистым путем. Нужно утомиться, чтобы писать и поддерживать такой шаблонный код, но хорошо. – kai