Я пытаюсь отсортировать список, содержащий двумерные массивы bool, как показано ниже.
List<bool[,]>boolList;
bool[,] bool2DArray = {
{true,true,true,true},
{true,true,true,true},
{true,true,true,true}
};
Я пытался отсортировать список, в котором они находятся, по количеству истинных значений в каждом двумерном массиве.
После нескольких часов поиска и поиска по всему Stackoverflow я не смог найти решение для этой конкретной проблемы, многие из решений, которые я смог найти, не сработали бы для меня в этой ситуации, когда я не сравнивая их напрямую, а скорее результат вычисления на них, который привел меня к попытке использовать решение типа Lambada, которое также не удалось, но я думаю, что это могло быть связано с тем, что я не понимал, как правильно его реализовать.
Любая помощь будет высоко ценится.
Редактировать
Простая функция, которую я сделал для подсчета
int GetCount(bool[,]bool2DArray) {
int count = 0;
int rows = bool2DArray.GetUpperBound(0);
int columns = bool2DArray.GetUpperBound(1);
for (int x = 0; x <= rows; x++) {
for (int i = 0; i <= columns; i++) {
bool isTrue = bool2DArray[x, i];
if (isTrue) {
count++;
}
}
}
return count;
}
И это решение типа Lambada, я думаю, в правильном направлении, но не является действительным.
List<bool[,]> sortedList = boolList.Sort((a,b) => (GetCount(a).CompareTo(GetCount(b))));