可以将其转换为linq查询

时间:2015-12-20 14:34:49

标签: c# linq

出于纯粹的好奇心,我只是想知道下面的剪辑是否可以转换为Linq例程?只是好奇linq的能力。

  var k = str1.IndexOf(str2.Substring(i, 1)) + str1.IndexOf(key.Substring(i, 1));

完整的代码是:

for (int i=0;i<str2.Length;i++)
{
var k = str1.IndexOf(str2.Substring(i, 1)) +       str1.IndexOf(key.Substring(i, 1));
if (k >= 36) {k = k - 36;}
result += str1.Substring(k, 1);
}

2 个答案:

答案 0 :(得分:2)

字符串内置了“序列处理”以及您所使用的代码。即使你把它翻译成LINQ,代码看起来也差不多,只是稍微差一点。

但LINQ没有内置IndexOf。你需要写那个。可以使用SubstringSkip模拟Take,但这些不会执行可以隐藏错误的范围验证。

对于LINQ来说,这不是一个好例子。

答案 1 :(得分:0)

Linq无意创建该查询。它最常用于在数据通用集合上构建查询。对于此示例,您不应使用Linq。最好将它留在你介绍的形式中。性能提示:使用 StringBuilder 。更多信息: http://www.dotnetperls.com/stringbuilder-performance