Форматирование строк с#
Почему у меня не выводится массив schedule в самом конце программы?С самим массивом точно проблем нет,проходился foreach и все элементы вывело. А когда пытаюсь вывести массив с помощью форматирования, то ничего не выводится. Матрица у меня размера NxM. N процессоров и M заданий.
static List<List<int>> Schedule(int[] tasks, int N, int M)
{
// Первый этап
var rnd = new Random();
var firstSchedule = new List<List<int>>();
for (int i = 0; i < N; i++)
{
firstSchedule.Add(new List<int>());
}
for (int j = 0; j < M; j++)
{
var pi = rnd.Next(0, N);
firstSchedule[pi].Add(tasks[j]);
}
Console.WriteLine("\n\n");
// Второй этап
while (true)
{
// Шаг 1
var loadTimes = new int[N];
for (int i = 0; i < N; i++)
{
loadTimes[i] = firstSchedule[i].Sum();
}
// Шаг 2
int maxLoadIndex = 0;
int minLoadIndex = 0;
for (int i = 0; i < N; i++)
{
if (loadTimes[i] > loadTimes[maxLoadIndex])
{
maxLoadIndex = i;
}
if (loadTimes[i] < loadTimes[minLoadIndex])
{
minLoadIndex = i;
}
}
int delta = loadTimes[maxLoadIndex] - loadTimes[minLoadIndex];
// Шаг 3
bool isSwapped = false;
for (int k = 0; k < firstSchedule[maxLoadIndex].Count && !isSwapped; k++)
{
for (int l = 0; l < firstSchedule[minLoadIndex].Count && !isSwapped; l++)
{
if (firstSchedule[maxLoadIndex][k] - firstSchedule[minLoadIndex][l] < delta &&
firstSchedule[maxLoadIndex][k] > firstSchedule[minLoadIndex][l])
{
isSwapped = true;
}
}
}
if (!isSwapped)
{
break;
}
// Шаг 4
var temp = firstSchedule[maxLoadIndex];
firstSchedule[maxLoadIndex] = firstSchedule[minLoadIndex];
firstSchedule[minLoadIndex] = temp;
}
return firstSchedule;
}
int N = 4, M = 7;
var schedule=Schedule(new int[7] { 5, 10, 15, 7, 4, 22, 5 }, N,M);
Console.WriteLine("Матрица расписания:");
for (int j = 0; j < N; j++)
Console.Write("{0}\t", "p" + j);
Console.WriteLine();
try
{
for (int i = 0; i < schedule.Count; i++)
{
for (int j = 0; j < schedule[i].Count; j++)
{
Console.Write("{0}\t", schedule[j][i]);
}
Console.WriteLine();
}
}
catch { }
Console.WriteLine("\n");
for (int i = 0; i < schedule.Count; i++)
{
Console.Write("{0}\t", schedule[i].Sum());
}
