我有一个@RequestMapping(value = "/demp", method = RequestMethod.PUT)
public String demo(@RequestBody String request) {
HttpServletRequest re3 = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
return "sfsdf";
}
,每行有5行30个元素......
我需要以ascendent顺序排序每一行的元素。
放入sol_iniziale的元素来自我读过的文件。 示例:
如果我有:List<int[]> sol_iniziale = new List<int[]>();
我想要结果:{{2 1 55 23 3}, {44 7 88 2 1}}
我写了一个函数,但输出顺序不正确...如果我有
{{1, 2, 3, 23, 55}, {1, 2, 7, 44, 88}}
输出为{51, 0, 1, 5, 5, 0},
..我不明白(可能是愚蠢的)错误在哪里!
提前谢谢。
{0, 1, 5, 5, 0, 51}
答案 0 :(得分:1)
static void Main(string[] args)
{
List<int[]> nums = new List<int[]> { new int[] { 3, 1, 2 }, new int[] { 5, 2, 4 } };
foreach (var row in nums)
{
Array.Sort(row);
}
foreach (var row in nums)
{
foreach (int i in row) Console.Write(i + " ");
}
}
答案 1 :(得分:1)
使用Linq,您可以执行以下操作:
IEnumerable<int[]> res = sol_iniziale.Select(t => {
Array.Sort(t);
return t;
});
如果要返回List而不是IEnumerable,只需执行:
res.ToList();
答案 2 :(得分:1)
您可以使用上述每种解决方案,或者只需更正您的解决方案:
void Ordina_sol_iniziale()
{
int temp = 0;
int temp2 = 0;
for (int i = 0; i <= nzaini; i++) //5 rows
{
for (int y = 0; y < nogg; y++) //30 elements of each row
{
for (int j = y + 1; j <= nogg; j++)
{
temp = sol_iniziale[i][j];
temp2 = sol_iniziale[i][y];
if (temp < temp2)
{
sol_iniziale[i][y] = temp2;
sol_iniziale[i][y+1] = temp;
}
}
}
}
}
答案 3 :(得分:0)
我建议你使用Linq这样的东西。例如:
List<int[]>
注意:
如果您出于特定目的而想要ToArray()
,则可以加入ToList()
和var sorted = yourList.Select(innerList => innerList.OrderBy(elm => elm).ToArray()).ToList();
:
create
这将选择每个列表,并将其返回排序。
答案 4 :(得分:0)
除非您尝试实现冒泡排序算法,否则应使用Array.Sort()函数。