Trước tiên, tôi cho rằng các mảng đồng bằng khá rõ ràng là cấu trúc dữ liệu sai cho vấn đề của bạn.
Cách sử dụng dictionary nơi bạn sử dụng chỉ mục 4- tuple làm chỉ mục?
var lookup = new Dictionary<Tuple<int,int,int,int>, int>();
Tôi chưa bao giờ làm điều đó, nhưng nó sẽ hoạt động tốt. Nếu bạn không có Tuple
sẵn sàng vì bạn đang làm việc với một phiên bản của .NET Framework trước NET 4, bạn có thể cung cấp loại chỉ số của riêng bạn:
struct LookupKey
{
public readonly int First;
public readonly int Second;
public readonly int Third;
public readonly int Fourth;
…
}
var lookup = new Dictionary<LookupKey, int>();
Nếu bạn sử dụng đối tượng tùy chỉnh được thực hiện đúng 'Equals()' và 'GetHashCode()', thì 'Dictionary' sẽ tự xử lý các xung đột. – svick