如何在c#中反转逻辑锯齿数组的值
本文关键字:数组 | 更新日期: 2023-09-27 18:03:18
下午好,我有一个c#锯齿数组与真和假的值(或0和1),我想颠倒的值,如:
1 1 1 1
0 1 1 0
1 1 1 1
1 0 0 1
成为:
0 0 0 0
1 0 0 1
0 0 0 0
0 1 1 0
是否有一种简单的方法使它不循环?我的jaggedarray ??
没有这样的内置操作来反转数组,但是您可以使用LINQ来执行反转,而不需要显式循环:
var res = myJaggedArray.Select(a => a.Select(n => 1-n).ToArray()).ToArray();
1-n
技巧是一种常用的将0替换为1,将1替换为0而不使用条件执行的方法。
没有内置函数,但您可以使用LINQ。
int[][] input = new[]
{
new[] { 1, 1, 1, 1 },
new[] { 0, 1, 1, 0 },
new[] { 1, 1, 1, 1 },
new[] { 1, 0, 0, 1 }
};
int[][] output = input.Select(row => row.Select(value => value == 1 ? 0 : 1).ToArray()).ToArray();
逻辑值:
bool[][] input = new[]
{
new[] { true, true, true, true },
new[] { false, true, true, false },
new[] { true, true, true, true },
new[] { true, false, false, true }
};
bool[][] output = input.Select(row => row.Select(value => !value).ToArray()).ToArray();