我有一个字符串
string value = "123456789";
Run Code Online (Sandbox Code Playgroud)
现在我需要按以下方式重新排列字符串:
123456789
1 right
12 left
312 right
3124 left
53124 right
...
975312468 result
Run Code Online (Sandbox Code Playgroud)
是否有一个花哨的linq one liner解决方案来解决这个问题?
我目前的(工作但不太好看)解决方案:
string items = "abcdefgij";
string result = string.Empty;
for (int i = 0; i < items.Length; i++)
{
if (i % 2 != 0)
{
result = result + items[i];
}
else
{
result = items[i] + result;
}
}
Run Code Online (Sandbox Code Playgroud)
string value = "123456789";
bool b = true;
string result = value.Aggregate(string.Empty, (s, c) =>
{
b = !b;
return b ? (s + c) : (c + s);
});
Run Code Online (Sandbox Code Playgroud)
我实际上不喜欢LINQ语句中的局部变量,但在这种情况下b有助于交替方向.(@klappvisor展示了如何没有生活b).