是否存在与使用
等表达式相关的任何缺点或性能下降from i in Enumerable.Range(1, Math.Min(strTexto.Length, tamMax) + 1)
select Tuple.Create(strTexto.Substring(0, i - 1), strTexto.Substring(i - 1))
在C#中?建立像
这样的“硬编码查询”是否更可取foreach (Int32 IntTmp in SomeListWithTheRange)
SomeListWithTheTuples.Add(new Tuple<String, String> (strTexto.Substring(0, i - 1), strTexto.Substring(i - 1)))
虽然第一眼看起来更具可读性,但我注意到这种查询会变得非常慢......例如,第一个查询需要11毫秒才能执行,而第二个查询只需要1毫秒。我对吗?只是想确保,因为我需要实现大量这类查询。
答案 0 :(得分:3)
第一种方法的表现与第二种方法一样好。当你说你“注意到这种查询会变得很慢”时 - 你能提供更多细节吗?你当然可以编写慢LINQ查询,但这是适当使用LINQ的问题。
请注意,您的两个代码示例目前根本不相同 - 第一个只是构建一个查询,但根本不使用它。你的第二个似乎是反复调用Concat
,当你迭代它时,将变慢,因为你最终会得到大量的迭代器。
如果你能解释一下你实际上要做什么,那将会有很大的帮助。