internal void ProcessAndSortPropertyEntries(ArrayList propertyEntries, 
            ref FilteredPropertyEntryComparer comparer) {

            if (propertyEntries != null && propertyEntries.Count > 1) {
                HybridDictionary dictionary = new HybridDictionary(propertyEntries.Count, true);
                int index = 0;

                // Determine the order of the entry based on location of the first entry with the same name
                foreach (PropertyEntry entry in propertyEntries) {
                    object o = dictionary[entry.Name];
                    if (o != null) {
                        entry.Order = (int)o;
                    }
                    else {
                        entry.Order = index;
                        dictionary.Add(entry.Name, index++);
                    }
                }

                if (comparer == null) {
                    comparer = new FilteredPropertyEntryComparer(CurrentFilterResolutionService);
                }
                propertyEntries.Sort(comparer);
            }
        }
 internal void ProcessAndSortPropertyEntries(ArrayList propertyEntries, ref FilteredPropertyEntryComparer comparer)
 {
     if ((propertyEntries != null) && (propertyEntries.Count > 1))
     {
         HybridDictionary dictionary = new HybridDictionary(propertyEntries.Count, true);
         int num = 0;
         foreach (PropertyEntry entry in propertyEntries)
         {
             object obj2 = dictionary[entry.Name];
             if (obj2 != null)
             {
                 entry.Order = (int) obj2;
             }
             else
             {
                 entry.Order = num;
                 dictionary.Add(entry.Name, num++);
             }
         }
         if (comparer == null)
         {
             comparer = new FilteredPropertyEntryComparer(this.CurrentFilterResolutionService);
         }
         propertyEntries.Sort(comparer);
     }
 }