internal object GetColumnValue(int columnIndex) { if (!owner.Contains(this) || !owner.Functions.Any()) { return(null); } object value = null; var variable = owner.GetVariableForColumnIndex(columnIndex); var values = variable.Values; if (columnIndex < owner.Function.Arguments.Count) { var argumentIndex = Index[columnIndex]; if (values.Count > argumentIndex) { value = values[argumentIndex]; } } else { var index = Index; if (MultiDimensionalArrayHelper.IsIndexWithinShape(index, values.Shape)) { value = values[Index]; } } return(value); }