#c#
#c#
Вопрос:
Формат:
Прошедшее время (мин, секунды, миллисекунды) Текущая дата (день, месяц, год) Дата-время (часы, минуты, секунды)
00:00:00 23/08/2020 12:24:37
00:00:00 23/08/2020 12:25:13
00:00:00 23/08/2020 12:25:18
Я взглянул на массив.Методы сортировки, но не уверен, как это реализовать. Моя идея в том, чтобы отсортировать их по прошедшему времени, сначала проходит меньше времени, а затем отобразить, на какую дату и в какое время они были записаны. Как я могу отсортировать это в массив?
Черт возьми, вот как я записываю в текстовый файл, а также как я получаю и сортирую время.
// Content of file
string content = timer.ts.ToString() " " System.DateTime.Now "n";
// Add text to file
File.AppendAllText(path, content);
timer
это ссылка на класс Timer, ts — секундомер.Истекло()
ts = stopwatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}.{2:00}",
ts.Minutes, ts.Seconds, ts.Milliseconds / 10);
Комментарии:
1. Работайте в обратном направлении. Разбивайте строки из текстового файла на первый пробел, чтобы у вас была часть TimeSpan и часть DateTime. Затем используйте TimeSpan.Parse() и DateTime. Выполните синтаксический анализ() , чтобы преобразовать эти строки в объекты. Создайте пользовательский класс для хранения обоих этих значений и поместите их в список<>. Отсортируйте свой список<> и выберите топ-10…
Ответ №1:
Примечание: Ниже приведена концепция, из которой вы можете взять ссылку. Это не работающий код
class Program
{
static void Main(string[] args)
{
Stopwatch st = Stopwatch.StartNew();
LogPerformance lf = new LogPerformance { TotalTicks = st.ElapsedTicks, LoggingText = "format of your lgging string" };
List<LogPerformance> performanceList = new List<LogPerformance>() {lf,.... };
LogPerformanceComparer comparer = new LogPerformanceComparer();
performanceList.Sort(comparer);
performanceList.ForEach(x => logger.Log(x.LoggingText));
}
public class LogPerformance
{
public long TotalTicks { get; set; }
public string LoggingText { get; set; }
}
public class LogPerformanceComparer : IComparer<LogPerformance>
{
public int Compare([NotNull] LogPerformance x, [NotNull] LogPerformance y)
{
return x.TotalTicks.CompareTo(y.TotalTicks);
}
}
}