gpt4 book ai didi

c# - 时间如何排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:21:14 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,以非常优化的方式对时间进行排序。时间的格式为 HH:MM:SS 我从 file.txt 中读取数据> 文件中的数据如下:

01:22:15 07:35:35 11:03:35 08:45:37 16:20:23 14:10:48 11:41:44 23:20:14 07:18:21 15:48:01 19:32:44 05:27:52 00:08:02 08:44:07 19:06:02 23:59:34 17:27:26
12:38:23 22:39:18 07:25:32 08:43:52

我必须逐行读取它并逐行打印排序后的输出。我最初想到使用 Dictionary 并将 HH(小时)分配给键并按键排序,但**问题是,如果两个小时相同怎么办(我的意思是 12:56:59 已经存在通过按键 12 我再次尝试通过按键 12 添加 12:23:44 ** 绝对异常(exception))。

我的尝试是:

class Program
{
static void Main(string[] args)
{
using (StreamReader reader = File.OpenText("C:\\Users\\ACER\\Desktop\\KT-iNDIA\\zExtra\\Bookprprn\\testCodeEval\\testCodeEval\\file.txt"))

while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (null != line)
{
Dictionary<string, string> dictHH = new Dictionary<string, string>();

string[] digits = line.Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string digit in digits)
{
string[] eachdigit = digit.Split(new char[] { ':', ' ' }, StringSplitOptions.RemoveEmptyEntries);
dictHH.Add(eachdigit[0], eachdigit[1] + " " + eachdigit[2]);
}

foreach (KeyValuePair<string, string> ch in dictHH.OrderBy(k => k.Key).Reverse())
{
Console.Write("{0} {1} ", ch.Key, ch.Value);
}
}
Console.WriteLine("");
}
Console.ReadKey();
}
}

如何解决问题?

最佳答案

只需使用 List<T>而不是 Dictionary<TKey, TValue>因为您没有唯一 key ,并且您没有利用 key 读取数据的性能优势在Dictionary<TKey, TValue> .

while (!reader.EndOfStream)
{
string line = reader.ReadLine();;
if (null != line)
{
List<string> listTime = new List<string>();
string[] digits = line.Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string digit in digits)
{
string[] eachdigit = digit.Split(new char[] { ':', ' ' }, StringSplitOptions.RemoveEmptyEntries);
//dictHH.Add(eachdigit[0], eachdigit[1] + " " + eachdigit[2]);
list.Add(eachdigit[0]+ eachdigit[1] + " " + eachdigit[2]);
}
foreach (var c in list.OrderBy(x => x))
Console.WriteLine(c);
}
}

关于c# - 时间如何排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33691494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com