public bool AttributesMatch(Attribute[] attributes) {
int ourCount = (Attributes == null ? 0 : Attributes.Length);
int count = (attributes == null ? 0 : attributes.Length);
if (ourCount != count) {
return false;
}
bool match = true;
for (int i = 0; i < ourCount; i++) {
for (int j = 0; j < count; j++) {
if (!Attributes[i].Match(attributes[j])) {
match = false;
break;
}
}
}
return match;
}