我有一个简单的代码,用于投影给定字符串参数的排列。我需要将此代码中的查询从LINQ query语法更改为MEthod语法。将感谢任何帮助。
public static List<string> SinglePermutations(string s)
{
var result = new List<string> { "" };
foreach (var c in s)
{
result = (from r in result
from a in s
select $"{r}{a}").ToList();
}
}
救援:
public static IEnumerable<string> SinglePermutations(string s)
{
return s.Aggregate(result, (current, c) => current.SelectMany(r => s, (r, a) => $"{r}{a}")
.ToList());
}
Resharper,不转换为循环。所以在@kalu93回答之前一步。
public static List<string> SinglePermutations(string s)
{
var result = new List<string> { "" };
foreach (var c in s)
{
result = (result.SelectMany(r => s, (r, a) => $"{r}{a}")).ToList();
}
return result;
}