private void SortItems() { IEnumerable source = ItemsSource; if (source == null) { SortedItems.Clear(); return; } IEnumerator enumerator = source.GetEnumerator(); if (!enumerator.MoveNext()) { SortedItems.Clear(); return; } SortComparer comparer = Comparer; SortedCollection sorted = new SortedCollection(); // using binary insertion sort algorithm int i = 1; sorted.Add(enumerator.Current); while (enumerator.MoveNext()) { object item = enumerator.Current; int insertIndex = BinarySearch(comparer, sorted, item, 0, i - 1); sorted.Insert(insertIndex, item); ++i; } SortedItems = sorted; }
public override int GetHashCode() { unchecked { int hashCode = Response.GetHashCode(); hashCode = (hashCode * 397) ^ (SortedItems?.GetHashCode() ?? 0); return(hashCode); } }
/// <summary> /// Загружает список переводов /// </summary> /// <param name="path">Путь к файлу переводов</param> /// <param name="containerType">Тип контейнера</param> public void LoadTranslations(string path, Type containerType) { if (MessageBox.Show("Очистить текущие переводы?", "Загрузка переводов", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { Core.Translations.Clear(); TranslationConflicts.Clear(); } Core.Translations.LoadTranslations(path, containerType, (itm, trans) => { SortedItems <string> cur; if (_TranslationConflicts.TryGetValue(itm, out cur)) { cur.Add(trans); } else { _TranslationConflicts[itm] = new SortedItems <string>() { trans } }; }); NotifyPropertiesChanged(nameof(TranslationConflicts), nameof(HasTranslationConflicts)); }
public override int GetHashCode() { return(SortedItems?.GetHashCode() ?? 0); }
/// <summary> /// Equalses the specified other. /// </summary> /// <param name="other">The other.</param> /// <returns></returns> public bool Equals(PagedChangeSet <TObject, TKey> other) { return(SortedItems.SequenceEqual(other.SortedItems)); // return Equals(this.SortedItems, other.SortedItems); }
public override int GetHashCode() { return(SortedItems != null ? SortedItems.GetHashCode() : 0); }