示例#1
0
        /// <summary>
        /// Ensures that the selected columns in the source <see cref="DataColumnCollection"/> do also exist in the destination <see cref="DataColumnCollection"/>.
        /// </summary>
        /// <param name="sourceTable">The source table.</param>
        /// <param name="selectedSourceDataColumns">The selected source data columns. If this parameter is null, all source columns are selected.</param>
        /// <param name="destinationTable">The destination table.</param>
        public static void EnsureColumnsExistInDestinationCollection(this DataColumnCollection sourceTable, IAscendingIntegerCollection selectedSourceDataColumns, DataColumnCollection destinationTable)
        {
            if (null == selectedSourceDataColumns || 0 == selectedSourceDataColumns.Count)
            {
                selectedSourceDataColumns = Altaxo.Collections.ContiguousIntegerRange.FromStartAndCount(0, sourceTable.ColumnCount);
            }

            foreach (var colIdx in selectedSourceDataColumns)
            {
                var srcCol = sourceTable[colIdx];

                destinationTable.EnsureExistence(
                    sourceTable.GetColumnName(srcCol),
                    srcCol.GetType(),
                    sourceTable.GetColumnKind(srcCol),
                    sourceTable.GetColumnGroup(srcCol)
                    );
            }
        }