c# – linq函数OrderByDescending和OrderBy如何在字符串长度内部
我的问题是基于
this question提出的,我在这个问题上发布了答案.
here
这是代码. var lines = System.IO.File.ReadLines(@"C:test.txt"); var Minimum = lines[0];//Default length set var Maximum = ""; foreach (string line in lines) { if (Maximum.Length < line.Length) { Maximum = line; } if (Minimum.Length > line.Length) { Minimum = line; } } 使用LINQ(我的方法)替代此代码 var lines = System.IO.File.ReadLines(@"C:test.txt"); var Maximum = lines.OrderByDescending(a => a.Length).First().ToString(); var Minimum = lines.OrderBy(a => a.Length).First().ToString(); LINQ易于阅读和实现.. 我想知道哪一个对性能有好处. 解决方法
你可以
read the source code for OrderBy.
停止对代码执行micro-optimizing或premature-optimization.尝试编写正确执行的代码,然后如果您以后遇到性能问题,请分析您的应用程序并查看问题所在.如果由于找到最短和最长的字符串而有一段代码存在性能问题,那么就开始优化这部分.
File.ReadLines返回一个IEnumerable< string>,这意味着如果你对它进行foreach,它将逐个返回给你的数据.我认为你可以在这里做的最好的性能改进是改进从磁盘读取文件.如果它足够小以将整个文件加载到内存中,请使用File.ReadAllLines,如果不是尝试读取适合内存的大块文件.逐行读取文件会因磁盘的I / O操作而导致性能下降.所以这里的问题不是LINQ或循环如何执行,问题在于磁盘读取次数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |