Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#如何订购字符串?_C#_String_Sorting - Fatal编程技术网

c#如何订购字符串?

c#如何订购字符串?,c#,string,sorting,C#,String,Sorting,我有一个字符串(stringMess),我把反应时间(点击按钮所需的时间)保存在一个字符串中。现在我想得到标签中最快和最短的时间,所以我必须对字符串进行排序。但是我怎么能做到呢?(我所做的一切直到给我一个错误:() 代码不是完整的…使用字符串(以及一个字符串)只会使问题变得更加困难。请使用时间跨度的列表 List<TimeSpan> reactionTimes = new List<TimeSpan>; startTime = DateTime.Now; int Ze

我有一个字符串(stringMess),我把反应时间(点击按钮所需的时间)保存在一个字符串中。现在我想得到标签中最快和最短的时间,所以我必须对字符串进行排序。但是我怎么能做到呢?(我所做的一切直到给我一个错误:()


代码不是完整的…

使用字符串(以及一个字符串)只会使问题变得更加困难。请使用
时间跨度
列表

List<TimeSpan> reactionTimes = new List<TimeSpan>;
startTime = DateTime.Now;
int Zeit = 0;
List<int> Mess = new List<int>();
int Anzahl;
var biggestZeit = Mess.Max();
var littlestZeit = Mess.Min();
当你停下来时:

reactionTimes.Add(DateTime.Now - startTime);    // Note: subtracting two DateTimes results in a TimeSpan
您可以对它们进行简单的排序:

reactionTimes.Sort();
仅当您希望向用户显示它们时才将其转换为字符串。这非常简单,具体取决于您希望它们的显示方式(毫秒?秒?周?年?),因为
TimeSpan
有一个
。ToString
方法采用格式字符串。请参阅:

以及
总毫秒数
总秒数
等的属性,这些属性都是
双精度
,可以按照您的意愿进行格式化

您甚至可以执行以下操作(未经测试的代码):


听起来你想要的不是一个字符串,而是一组整数(数组、列表等等)。如果你绝对必须有一个字符串(家庭作业?真的,真的很奇怪的要求?),你需要拆分字符串

第一个是这样的:

List<TimeSpan> reactionTimes = new List<TimeSpan>;
startTime = DateTime.Now;
int Zeit = 0;
List<int> Mess = new List<int>();
int Anzahl;
var biggestZeit = Mess.Max();
var littlestZeit = Mess.Min();
然后你会得到最大值和最小值,如下所示:

List<TimeSpan> reactionTimes = new List<TimeSpan>;
startTime = DateTime.Now;
int Zeit = 0;
List<int> Mess = new List<int>();
int Anzahl;
var biggestZeit = Mess.Max();
var littlestZeit = Mess.Min();
如果必须使用该字符串,您仍然可以通过以下操作获取int数组(或列表):

var resultList = Mess.Split(',').ToList();
var biggestZeit = resultList.Max(s => int.Parse(s));
var littlestZeit = resultList.Min(s => int.Parse(s));

正如Matt所指出的,通过使用
TimeSpan

的集合,可以进一步简化“排序字符串”的含义。通常情况下,您会对包含多个值的集合进行排序。听起来您可能不应该将所有数据存储在一个字符串值中……我认为他的意思可能是,他将反应时间存储为一个字符串中的集合,并希望根据最短时间或其他情况对其进行解析/重新排序。当出现以下情况时,为什么要将反应时间存储在字符串中e是一个非常好的
TimeSpan
类,用于存储时间间隔?使用
列表来代替它。@AMR我不可能说这是正确的方法。我只是想让他的问题更清楚,不管它是什么。变量名为“Mess”真的很有趣。在德语中它代表“Measured”,但在英语中它的意思是“混乱或充满困难的情况或状态”。哈哈!我认为行“reactionTimes=DateTime.Now-startTime;”应该是“reactionTimes.Add(DateTime.Now-startTime);“这样你就可以添加到一个集合中。我个人会使用秒表(),然后你可以使用Reset(),Start(),Stop()和消逝()。@RickDavin:Whoops.Brainfart。谢谢你抓住它。@Idle\u Mind:Stopwatch会很好。正确的选择可能取决于你的时间间隔有多大以及你需要测量它们的准确度。我的时间间隔很小(