Tôi không nghĩ rằng bạn cần Thư viện. Tôi nghĩ LINQ làm tất cả các bạn đề cập khá tốt.
Tạo một mảng từ một
int[,] parts = new int[2,3];
int[] flatArray = parts.ToArray();
// Copying the array with the same dimensions can easily be put into an extension
// method if you need it, nothing to grab a library for ...
Dễ dàng lặp
int[,] parts = new int[2,3];
foreach(var item in parts)
Console.WriteLine(item);
Cắt lát của mảng
int[] arr = new int[] { 2,3,4,5,6 };
int[] slice = arr.Skip(2).Take(2).ToArray();
// Multidimensional slice
int[,] parts = new int[2,3];
int[] slice = arr.Cast<int>().Skip(2).Take(2).ToArray();
Các vụng .Cast<int>
trong ví dụ cuối cùng là due to the quirk that multidimensional arrays in C# are only IEnumerable
and not IEnumerable<T>
.
LINQ thiếu các tính năng số, chỉ hoạt động tốt với 1 tham số và nó sẽ chậm hơn đáng kể so với số lượng tốt. – CodesInChaos
Vâng, câu hỏi là về thao tác mảng, nó không nói liệu hiệu suất hay tính toán số là một yếu tố. – driis
Ít nhất là "mảng cắt" và "kích thước n" đã được đề cập và thiếu LINQ. – CodesInChaos