Массив 2D в C # не отсортирован по столбцам.
- Минимальный год -> Максимальный год
- Минимальный месяц -> Максимальный месяц
- Минимальный день -> Максимальный день
string[,] A = new string[2, 7];
string[,] B = new string[7, 7];
int menu = 0;
int i = 0;
int L = 0;
Console.WriteLine("Main ============i" + i + " L " + L + " =Menu " + menu + "==================");
do
{
Console.WriteLine("Do Loop ============= " + i + " =====================");
//i = 0;
for (int j = 0; j < A.GetLength(1); j++)
{
A[0, j] = Console.ReadLine();
B[L, j] = A[0, j];
}
Console.WriteLine("Before copy===");
PriArr(A);
Console.WriteLine("After copy===");
PriArr(B);
Console.WriteLine("Do you add new one? [1.Yes 2.No] : ");
int Menu = int.Parse(Console.ReadLine());
switch (Menu)
{
case 1: menu = 0; L++; break;
case 2: menu = 1; break;
}
Console.WriteLine("After Switch (menu value):" + menu);
} while (menu == 0);
SortArr(B);
Console.WriteLine("After sorted===============");
PriArr(B);
}
static void PriArr(string[,] IN)
{
for (int i = 0; i < IN.GetLength(0); i++)
{
for (int j = 0; j < IN.GetLength(1); j++)
{
Console.Write("{0} ", IN[i, j]);
}
Console.WriteLine("||");
}
Console.WriteLine("----------");
}
static string[,] SortArr(string[,] IN)
{
int Y, Y1, M, M1, D, D1;
string c;
//Sort Year: Year min --> Year Max
for (int i = 0; i < IN.GetLength(0) - 1; i++)
{
for (int L = i; L < IN.GetLength(0); L++)
{
//Year index 2 convert to int
Y = Convert.ToInt32(IN[i, 2]);
Y1 = Convert.ToInt32(IN[L, 2]);
//Month index 1 convert to int
M = Convert.ToInt32(IN[i, 1]);
M1 = Convert.ToInt32(IN[L, 1]);
//Day index 0 convert int
//Month index 1 convert to int
D = Convert.ToInt32(IN[i, 0]);
D1 = Convert.ToInt32(IN[L, 0]);
if (D > D1)
{
if (M > M1)
{
if (Y > Y1)
{
for (int k = 0; k < IN.GetLength(1);k++)
{
c = IN[i, k];
IN[i, k] = IN[L, k];
IN[L, k] = c;
}
}
}
}
}
}
return IN;
Я ожидаю, что выходные данные могут отображаться по виду даты в качестве пользовательского ввода.
Более подробную информацию вы можете увидеть в Фото таблицы