gpt4 book ai didi

c# - 通过 Linq 对字符串进行排序

转载 作者:太空狗 更新时间:2023-10-29 20:49:09 24 4
gpt4 key购买 nike

假设我有以下输入:

string input = "123456789";

并期待以下输出:

string output = "741852963";

逻辑是一个正方形,需要向右旋转 90 度 - 但不能换行。

//  squares
//INPUT OUTPUT
// 123 ══╗ 741
// 456 V 852
// 789 963

宽度应该是动态的并且总是

int width = (int)Math.Sqrt(input.Length);

有解决这个问题的简单方法吗?

最佳答案

我个人更喜欢 for 循环,但也有一个 Linq 解决方案

try it with Fiddle

string input = "0123456789ABCDEF";
/*
0123
4567
89AB
CDEF
*/

int width = (int)Math.Sqrt(input.Length);

var seq = input.AsEnumerable()
.Select((c, i) => new {Chr = c, Row = i / width, Col = i % width})
.OrderBy(a => a.Col)
.ThenByDescending(a => a.Row)
.Select(a=>a.Chr);
var s = string.Join("", seq);
Console.WriteLine(s);

打印

C840D951EA62FB73

关于c# - 通过 Linq 对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com