internal void MoveTo(DataColumn column, int newPosition)
{
if (0 > newPosition || newPosition > Count - 1)
{
throw ExceptionBuilder.InvalidOrdinal("ordinal", newPosition);
}
if (column.ImplementsIChangeTracking)
{
RemoveColumnsImplementingIChangeTrackingList(column);
}
_list.Remove(column);
_list.Insert(newPosition, column);
int count = _list.Count;
for (int i = 0; i < count; i++)
{
((DataColumn)_list[i]).SetOrdinalInternal(i);
}
CheckIChangeTracking(column);
OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Refresh, column));
}