From cf406c10f101fc984d8cbf7b4c3b115975fcf407 Mon Sep 17 00:00:00 2001 From: Aleksei Smirnov Date: Fri, 19 May 2023 09:15:25 +0300 Subject: [PATCH] Remove redundant column names collection from DataFrameColumnCollection --- .../DataFrameColumnCollection.cs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/Microsoft.Data.Analysis/DataFrameColumnCollection.cs b/src/Microsoft.Data.Analysis/DataFrameColumnCollection.cs index 0701588f3f..21d29b4c19 100644 --- a/src/Microsoft.Data.Analysis/DataFrameColumnCollection.cs +++ b/src/Microsoft.Data.Analysis/DataFrameColumnCollection.cs @@ -14,9 +14,6 @@ namespace Microsoft.Data.Analysis public class DataFrameColumnCollection : Collection { private readonly Action ColumnsChanged; - - private readonly List _columnNames = new List(); - private readonly Dictionary _columnNameToIndexDictionary = new Dictionary(StringComparer.Ordinal); internal long RowCount { get; set; } @@ -46,7 +43,6 @@ public void SetColumnName(DataFrameColumn column, string newName) string currentName = column.Name; int currentIndex = _columnNameToIndexDictionary[currentName]; column.SetName(newName); - _columnNames[currentIndex] = newName; _columnNameToIndexDictionary.Remove(currentName); _columnNameToIndexDictionary.Add(newName, currentIndex); ColumnsChanged?.Invoke(); @@ -77,11 +73,10 @@ protected override void InsertItem(int columnIndex, DataFrameColumn column) throw new ArgumentException(string.Format(Strings.DuplicateColumnName, column.Name), nameof(column)); } RowCount = column.Length; - _columnNames.Insert(columnIndex, column.Name); _columnNameToIndexDictionary[column.Name] = columnIndex; for (int i = columnIndex + 1; i < Count; i++) { - _columnNameToIndexDictionary[_columnNames[i]]++; + _columnNameToIndexDictionary[this[i].Name]++; } base.InsertItem(columnIndex, column); ColumnsChanged?.Invoke(); @@ -99,8 +94,7 @@ protected override void SetItem(int columnIndex, DataFrameColumn column) { throw new ArgumentException(string.Format(Strings.DuplicateColumnName, column.Name), nameof(column)); } - _columnNameToIndexDictionary.Remove(_columnNames[columnIndex]); - _columnNames[columnIndex] = column.Name; + _columnNameToIndexDictionary.Remove(this[columnIndex].Name); _columnNameToIndexDictionary[column.Name] = columnIndex; base.SetItem(columnIndex, column); ColumnsChanged?.Invoke(); @@ -108,12 +102,11 @@ protected override void SetItem(int columnIndex, DataFrameColumn column) protected override void RemoveItem(int columnIndex) { - _columnNameToIndexDictionary.Remove(_columnNames[columnIndex]); + _columnNameToIndexDictionary.Remove(this[columnIndex].Name); for (int i = columnIndex + 1; i < Count; i++) { - _columnNameToIndexDictionary[_columnNames[i]]--; + _columnNameToIndexDictionary[this[i].Name]--; } - _columnNames.RemoveAt(columnIndex); base.RemoveItem(columnIndex); ColumnsChanged?.Invoke(); } @@ -144,7 +137,6 @@ protected override void ClearItems() { base.ClearItems(); ColumnsChanged?.Invoke(); - _columnNames.Clear(); _columnNameToIndexDictionary.Clear(); }