Member 14760154 Ответов: 2

Как упорядочить массив с помощью linq в C#


У меня есть проблема, когда я хочу отсортировать данные моего массива

Это и есть выход
Combivent 4/13/2020 3:07:43 PM
Дилантин 4/13/2020 3:08:43 вечера
Enebrel 4/13/2020 3:05:43 PM
Гидралазин 4/13/2020 3:06:43 вечера
Индоцин 4/13/2020 3:04:43 вечера


Я хочу отсортировать их по дате и времени ,
Как я могу решить эту проблему?

Что я уже пробовал:

Я должен попробовать это
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));

// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", "4/13/2020 3:04:43 PM");
table.Rows.Add(50, "Enebrel", "Sam", "4/13/2020 3:05:43 PM");
table.Rows.Add(10, "Hydralazine", "Christoff", "4/13/2020 3:06:43 PM");
table.Rows.Add(31, "Combivent", "Janet", "4/13/2020 3:07:43 PM");
table.Rows.Add(100, "Dilantin", "Melanie", "4/13/2020 3:08:43 PM");
string[] values1 = new string[table.Rows.Count];

for (int i = 0; i < table.Rows.Count; i++)
           {
               values1[i] = table.Rows[i]["Drug"].ToString()  + " " + table.Rows[i]["Date"].ToString();
           }

Console.WriteLine(values1[0].ToString()+ values1[1].ToString() + values1[2].ToString() + values1[3].ToString() + values1[4].ToString());

2 Ответов

Рейтинг:
0

OriginalGriff

Легко: как только вы исправите проблему формата с вашими примерами данных:

DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));

// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", new DateTime(2020, 4, 13, 15, 4, 43));
table.Rows.Add(50, "Enebrel", "Sam", new DateTime(2020, 4, 13, 15, 5, 43));
table.Rows.Add(10, "Hydralazine", "Christoff", new DateTime(2020, 4, 13, 15, 6, 43));
table.Rows.Add(31, "Combivent", "Janet", new DateTime(2020, 4, 13, 15, 7, 43));
table.Rows.Add(100, "Dilantin", "Melanie", new DateTime(2020, 4, 13, 15, 8, 43));
var ordered = table.AsEnumerable().OrderByDescending(row => row["Date"]);
foreach (DataRow row in ordered)
    {
    Console.WriteLine($"{row["Drug"]} {row["Date"]}");
    }
Поскольку ваши образцы данных уже были упорядочены по дате, я использую OrderByDescending чтобы показать, что это работает, а не OrderBy


Рейтинг:
0

Member 13006446

var sortedvalues = from s in values1 orderby s select s;

	foreach (string c in sortedvalues)
	{
	    Console.WriteLine(c);
	}

Note: "values1"  is your array.