var random = new Random();
// размеры массива, в качестве примера взяты константы
var columns = 10;
var rows = 5;
// создаем данные
var data = new int[rows][];
for(var row = 0; row < rows; row++)
{
data[row] = new int[columns];
for(var column = 0; column < columns; column++)
data[row][column] = random.NextInt(-100, 100);
}
// сортируем данные
var sorted = data.OrderBy(x => x.Sum()).ToArray();
Console
, приходится мириться с его ограничениями, в частности - однопоточностью.ConsoleWrapper
и тестовый ConsoleWrapperMock
._inner
используется у вас во многих местах, и есть некий публичный метод, который его возвращает. Тогда внешний код сможет вызвать этот метод, получить тот же экземпляр объекта _inner
и поставить на него свой lock
. Так можно случайно словить взаимоблокировку и повесить приложение._lock
- это просто правило хорошего тона, его создают для безопасности: очень маловероятно, что кому-то придет в голову использовать его за пределами инструкции lock
и тем более вернуть из метода.GetHashCode
и Equals
нужно переопределять, если вы хотите, чтобы два различных экземпляра одного класса могли считаться одинаковыми. В вашем же случае экземпляр будет равен только самому себе, потому что Id
всегда будут уникальными. Получается, вы переизобрели семантику сравнения по ссылке, которая и так работает по умолчанию, если не переопределять GetHashCode
и Equals
вообще.LastLeasedID
рано или поздно получите дубликаты. [Authorize]
и при каждом обращении к ним передавать в заголовках запроса этот токен:Authorization: Bearer <значение токена>