Можно ли как-нибудь взаимодействовать с двухмерными и более... массивами с помощью LINQ или Array?
Например, я пробовал вот так (но естественно ничего не получилось): можно ли найти сумму всех четных элементов двумерного массива
int[,] a = new int[4, 8];
Random ran = new Random();
//...
Array.FindAll(a, i =>i % 2 == 0).Sum(); //или
a.Where(i => i % 2 == 0).Sum();
Ответы (1 шт):
Автор решения: Alex
→ Ссылка
Можно сделать, преобразовав многомерный массив в одномерную коллекцию:
int[,] a = new int[4, 8];
Random ran = new Random();
//...
// Преобразуем многомерный массив в одномерный и находим сумму четных элементов
int evenSum = a.Cast<int>().Where(i => i % 2 == 0).Sum();
Console.WriteLine($"Сумма всех четных элементов: {evenSum}");
Еще можно взаимодействовать и так:
int[][] jaggedArray = {
new[] { 1, 2, 3 },
new[] { 4, 5 },
new[] { 6, 7, 8, 9 }
};
// Найдем все элементы больше 5
var filteredNumbers = jaggedArray.SelectMany(row => row).Where(x => x > 5);
Console.WriteLine(string.Join(", ", filteredNumbers));