private void Initialize() { byte[] oldentry, newentry; bool entry_result = false; bool text_result = false; int min_length = Math.Min(_First.Count, _Second.Count); bool[] summaryflags = null; using (var first = TLKFILE.Open(_First.FilePath)) using (var second = TLKFILE.Open(_Second.FilePath)) { for (int i = 0; i < min_length; i++) { oldentry = first.GetEntryNoText(i); newentry = second.GetEntryNoText(i); entry_result = oldentry.SequenceEqual(newentry); text_result = string.Equals(_First[i].Text, _Second[i].Text); if (entry_result && text_result) { continue; } summaryflags = first.CompareEntrise(oldentry, newentry); summaryflags[summaryflags.Length - 1] = !text_result; TLKInfos.Add(new TLKInfo(i, summaryflags)); } } if (_First.Count == _Second.Count) { return; } var maxTLK = _First.Count > _Second.Count ? _First : _Second; int max_length = maxTLK.Count; // 아래 항목들은 추가 또는 삭제가 필요한 항목. for (int i = 0; i < summaryflags.Length; i++) { summaryflags[i] = true; } for (int i = min_length; i < max_length; i++) { TLKInfos.Add(new TLKInfo(i, summaryflags)); } }
private bool disposedValue = false; // 중복 호출을 검색하려면 protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: 관리되는 상태(관리되는 개체)를 삭제합니다. TLKInfos.Clear(); _First.IsCompare = false; _Second.IsCompare = false; Tabs.Clear(); Tabs = null; _Collection = null; } // TODO: 관리되지 않는 리소스(관리되지 않는 개체)를 해제하고 아래의 종료자를 재정의합니다. // TODO: 큰 필드를 null로 설정합니다. disposedValue = true; } }