Po pierwsze, chciałbym twierdzą, że zwykłe tablice są dość wyraźnie zły rodzaj struktury danych dla Twojego problemu.
Co powiesz na używanie numeru dictionary, w którym jako indeks używany jest numer 4- tuple?
var lookup = new Dictionary<Tuple<int,int,int,int>, int>();
Ja sam nigdy tego nie robiłem, ale powinno działać dobrze. Jeśli nie masz Tuple
gotowy, ponieważ pracujemy z wersji .NET Framework poprzedzającego 4, można podać swój własny typ indeksu:
struct LookupKey
{
public readonly int First;
public readonly int Second;
public readonly int Third;
public readonly int Fourth;
…
}
var lookup = new Dictionary<LookupKey, int>();
Jeśli użyjesz niestandardowego obiektu z poprawnie zaimplementowanymi 'Equals()' i 'GetHashCode()', 'Dictionary' sam zajmie się kolizjami. – svick