2015-07-18 23 views

Trả lời

12

Không có built-in hoạt động cho đảo ngược một mảng như thế, nhưng bạn có thể sử dụng LINQ để làm đảo ngược mà không có vòng rõ ràng:

var res = myJaggedArray.Select(a => a.Select(n => 1-n).ToArray()).ToArray(); 

Bí quyết 1-n là cách phổ biến để thay thế số không bằng số 0 và số 0 bằng 0 mà không sử dụng thực thi có điều kiện.

+0

Cảm ơn cả hai! – Nauzet

+6

mẹo '1-n' tốt đẹp :) –

+0

những gì bạn nghĩ sẽ nhanh hơn để làm việc với (lopps, hoạt động, vv), bool [] [] hoặc int [] []? những gì về bitarrays? – Nauzet

8

Không có chức năng tích hợp sẵn, nhưng bạn có thể sử dụng 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(); 

Đối với giá trị logic:

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(); 
+0

Cảm ơn cả hai! – Nauzet

Các vấn đề liên quan