public override string GetSqlString() { var indexColumnList = new CollectionToString( DbContext.DBA_IND_COLUMNS .Where(c => c.INDEX_OWNER == _index.OWNER && c.INDEX_NAME == _index.INDEX_NAME) .OrderBy(c => c.COLUMN_POSITION) .Select( c => c.COLUMN_NAME + (c.DESCEND.Equals("DESC") ? " desc" : string.Empty)) .ToList()).GetAsString().ToLowerInvariant(); var tablespaceName = _index.TABLESPACE_NAME ?? GetDefaultTablespace(_index.OWNER); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[BITMAP_UNIQUE]", _index.INDEX_TYPE.Equals("BITMAP") ? " bitmap" : _index.INDEX_TYPE.Equals("UNIQUE") ? " unique" : string.Empty) .Replace("[INDEX_NAME]", _index.INDEX_NAME.ToLowerInvariant()) .Replace("[COLUMN_LIST]", indexColumnList) .Replace("[TABLE_NAME]", _index.TABLE_NAME.ToLowerInvariant()) .Replace("[TABLESPACE_NAME]", tablespaceName.ToLowerInvariant()); }
public override string GetSqlString() { var constraintColumnsString = new CollectionToString( DbContext.DBA_CONS_COLUMNS .Where( c => c.OWNER == _primaryKeyConstraint.OWNER && c.CONSTRAINT_NAME == _primaryKeyConstraint.CONSTRAINT_NAME) .OrderBy(c => c.POSITION) .Select(c => c.COLUMN_NAME) .ToList()).GetAsString().ToLowerInvariant(); var tablespaceName = DbContext.DBA_INDEXES .First( i => i.OWNER == _primaryKeyConstraint.INDEX_OWNER && i.INDEX_NAME == _primaryKeyConstraint.INDEX_NAME) .TABLESPACE_NAME; if (string.IsNullOrEmpty(tablespaceName)) { tablespaceName = GetDefaultTablespace(_primaryKeyConstraint.INDEX_OWNER); } return "\t" + (TemplateStrings.GetTemplate(TemplateFileName) .Replace("[CONSTRAINTNAME]", _primaryKeyConstraint.CONSTRAINT_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTCOLUMNS]", constraintColumnsString) .Replace("[TABLESPACE_NAME]", tablespaceName.ToLowerInvariant()) .Replace("[CONSTRAINTSTATE]", _primaryKeyConstraint.STATUS.Equals("DISABLED") ? " disable" : string.Empty) .Replace("\t","\t\t")); }
public override string GetSqlString() { var constraintColumnsString = new CollectionToString( DbContext.DBA_CONS_COLUMNS .Where( c => c.OWNER == _primaryKeyConstraint.OWNER && c.CONSTRAINT_NAME == _primaryKeyConstraint.CONSTRAINT_NAME) .OrderBy(c => c.POSITION) .Select(c => c.COLUMN_NAME) .ToList()).GetAsString().ToLowerInvariant(); var tablespaceName = DbContext.DBA_INDEXES .First( i => i.OWNER == _primaryKeyConstraint.INDEX_OWNER && i.INDEX_NAME == _primaryKeyConstraint.INDEX_NAME) .TABLESPACE_NAME; if (string.IsNullOrEmpty(tablespaceName)) { tablespaceName = GetDefaultTablespace(_primaryKeyConstraint.INDEX_OWNER); } return("\t" + (TemplateStrings.GetTemplate(TemplateFileName) .Replace("[CONSTRAINTNAME]", _primaryKeyConstraint.CONSTRAINT_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTCOLUMNS]", constraintColumnsString) .Replace("[TABLESPACE_NAME]", tablespaceName.ToLowerInvariant()) .Replace("[CONSTRAINTSTATE]", _primaryKeyConstraint.STATUS.Equals("DISABLED") ? " disable" : string.Empty) .Replace("\t", "\t\t"))); }
public override string GetSqlString() { var indexColumnList = new CollectionToString( DbContext.DBA_IND_COLUMNS .Where(c => c.INDEX_OWNER == _index.OWNER && c.INDEX_NAME == _index.INDEX_NAME) .OrderBy(c => c.COLUMN_POSITION) .Select( c => c.COLUMN_NAME + (c.DESCEND.Equals("DESC") ? " desc" : string.Empty)) .ToList()).GetAsString().ToLowerInvariant(); var tablespaceName = _index.TABLESPACE_NAME ?? GetDefaultTablespace(_index.OWNER); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[BITMAP_UNIQUE]", _index.INDEX_TYPE.Equals("BITMAP") ? " bitmap" : _index.INDEX_TYPE.Equals("UNIQUE") ? " unique" : string.Empty) .Replace("[INDEX_NAME]", _index.INDEX_NAME.ToLowerInvariant()) .Replace("[COLUMN_LIST]", indexColumnList) .Replace("[TABLE_NAME]", _index.TABLE_NAME.ToLowerInvariant()) .Replace("[TABLESPACE_NAME]", tablespaceName.ToLowerInvariant())); }
public override string GetSqlString() { LoadReferencedConstraint(); var constraintColumns = LoadConstraintColumns(_foreignKeyConstraint); var refConstraintColumns = LoadConstraintColumns(_refConstraint); var collectionToStringTool = new CollectionToString(); var constraintColumnsString = collectionToStringTool.GetAsString( constraintColumns .Select(c => c.COLUMN_NAME.ToLowerInvariant()) .ToList()); var refConstraintColumnsString = collectionToStringTool.GetAsString( refConstraintColumns .Select(c => c.COLUMN_NAME.ToLowerInvariant()) .ToList()); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[TABLENAME]", _foreignKeyConstraint.TABLE_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTNAME]", _foreignKeyConstraint.CONSTRAINT_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTCOLUMNS]", constraintColumnsString) .Replace("[REFTABLENAME]", _refConstraint.TABLE_NAME.ToLowerInvariant()) .Replace("[REFCONSTRAINTCOLUMNS]", refConstraintColumnsString) .Replace("[CONSTRAINTSTATE]", _foreignKeyConstraint.STATUS.Equals("DISABLED") ? " disable" : string.Empty)); }
public override string GetSqlString() { var collectionToStringTool = new CollectionToString(null, string.Empty); var packageHeaderString = collectionToStringTool.GetAsString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _package.OWNER && s.NAME == _package.OBJECT_NAME && s.TYPE == _package.OBJECT_TYPE) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); var packageBodyString = collectionToStringTool.GetAsString( DbContext.DBA_SOURCE .Where( s => s.TYPE == "PACKAGE BODY" && s.OWNER == _package.OWNER && s.NAME == _package.OBJECT_NAME) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[PACKAGE_HEADER]", packageHeaderString) .Replace("[PACKAGE_BODY]", packageBodyString); }
public override string GetSqlString() { LoadReferencedConstraint(); var constraintColumns = LoadConstraintColumns(_foreignKeyConstraint); var refConstraintColumns = LoadConstraintColumns(_refConstraint); var collectionToStringTool = new CollectionToString(); var constraintColumnsString = collectionToStringTool.GetAsString( constraintColumns .Select(c => c.COLUMN_NAME.ToLowerInvariant()) .ToList()); var refConstraintColumnsString = collectionToStringTool.GetAsString( refConstraintColumns .Select(c => c.COLUMN_NAME.ToLowerInvariant()) .ToList()); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[TABLENAME]",_foreignKeyConstraint.TABLE_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTNAME]",_foreignKeyConstraint.CONSTRAINT_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTCOLUMNS]",constraintColumnsString) .Replace("[REFTABLENAME]",_refConstraint.TABLE_NAME.ToLowerInvariant()) .Replace("[REFCONSTRAINTCOLUMNS]",refConstraintColumnsString) .Replace("[CONSTRAINTSTATE]",_foreignKeyConstraint.STATUS.Equals("DISABLED") ? " disable" : string.Empty); }
public override string GetSqlString() { var collectionToStringTool = new CollectionToString(null, string.Empty); var packageHeaderString = collectionToStringTool.GetAsString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _package.OWNER && s.NAME == _package.OBJECT_NAME && s.TYPE == _package.OBJECT_TYPE) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); var packageBodyString = collectionToStringTool.GetAsString( DbContext.DBA_SOURCE .Where( s => s.TYPE == "PACKAGE BODY" && s.OWNER == _package.OWNER && s.NAME == _package.OBJECT_NAME) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[PACKAGE_HEADER]", packageHeaderString) .Replace("[PACKAGE_BODY]", packageBodyString)); }
static void TestMaxSubArraySoln() { Console.WriteLine(" ***** MaxSubArray Solutions Test ***** "); int[] sampleAAA = { 13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7 }; CollectionToString CtoS = new CollectionToString(); MaxSubArray MSA = new MaxSubArray(); Console.WriteLine("Brute sum result: {0}", MSA.BruteForceMax(sampleAAA)); Console.WriteLine("Brute start array result: {0}", MSA.BruteForceStartPos(sampleAAA)); }
static void Main(string[] args) { Console.WriteLine("Testing Sort Algorithms"); CollectionToString CtoS = new CollectionToString(); MergeSort <int> MS = new MergeSort <int>(new InsertionSort <int>()); int[] SampleA = { 6, 5, 3, 1, 8, 2, 7, 4 }; int[] SampleB = { 1, 2, 3, 4, 5, 7, 8, 9, 10 }; int[] SampleC = ArrayPopulator.populateRndOrder(new int[380]); int[] SampleD = ArrayPopulator.populateRndOrder(new int[12]); //Console.WriteLine("Contents of {0}: {1}",nameof(SampleC),CtoS.ArrayReporter(SampleC)); //Console.WriteLine("The output of your {0} is: {1}", // System.Reflection.MethodBase.GetCurrentMethod(), // CtoS.ArrayReporter(MS.Sort(SampleX)) // ); //MergeSort Test //CourseSort in action //Console.WriteLine("{0} on {1}: {2}", // nameof(MergeSort<int>.CoarseSort), // nameof(SampleC), // CtoS.ArrayReporter(MS.CoarseSort(SampleC))); //InsertionSort Test //InsertionSort<int> IS = new InsertionSort<int>(); //Console.WriteLine("Insertion sort results: {0}", CtoS.ArrayReporter(IS.Sort(SampleX))); //Console.WriteLine("Insertion sort results: {0}", // CtoS.ArrayReporter(IS.RecursiveSort(SampleA, SampleA.Length - 1))); //BinarySearch Test //BinarySearch<int> BS = new BinarySearch<int>(); ////Console.WriteLine("Binary search result for {0} searching value {1}: {2}", nameof(SampleA), 6, BS.GetIndex(SampleA, 6)); //Console.WriteLine("Binary search result for {0} searching value {1}: {2}", nameof(SampleB), 6, BS.GetIndex(SampleB, 6)); //Console.WriteLine("Binary search result for {0} searching value {1}: {2}", nameof(SampleC), 96, BS.GetIndex(SampleC, 96)); //SelectionSort Test //SelectionSort<int> SS = new SelectionSort<int>(); //Console.WriteLine("Insertion sort results: {0}", CtoS.ArrayReporter(SS.Sort(SampleX))); TestMaxSubArraySoln(); Console.ReadLine(); }
public override string GetSqlString() { var viewColumnsString = new CollectionToString( DbContext.DBA_TAB_COLUMNS .Where(c => c.OWNER == _view.OWNER && c.TABLE_NAME == _view.VIEW_NAME) .OrderBy(c => c.COLUMN_ID) .Select(v => v.COLUMN_NAME) .ToList(), ",\n\t").GetAsString().ToLowerInvariant(); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[VIEW_NAME]", _view.VIEW_NAME.ToLowerInvariant()) .Replace("[VIEW_COLUMNS]", "\n\t" + viewColumnsString) .Replace("[VIEW_DEF]", _view.TEXT)); }
public override string GetSqlString() { var viewColumnsString = new CollectionToString( DbContext.DBA_TAB_COLUMNS .Where(c => c.OWNER == _view.OWNER && c.TABLE_NAME == _view.VIEW_NAME) .OrderBy(c => c.COLUMN_ID) .Select(v => v.COLUMN_NAME) .ToList(), ",\n\t").GetAsString().ToLowerInvariant(); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[VIEW_NAME]", _view.VIEW_NAME.ToLowerInvariant()) .Replace("[VIEW_COLUMNS]", "\n\t" + viewColumnsString) .Replace("[VIEW_DEF]", _view.TEXT); }
public override string GetSqlString() { var procedureSpecString = new CollectionToString(null, string.Empty) .GetAsString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _procedure.OWNER && s.NAME == _procedure.OBJECT_NAME && s.TYPE == _procedure.OBJECT_TYPE) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[PROCEDURE_SPEC]", procedureSpecString)); }
public override string GetSqlString() { var typeDefString = new CollectionToString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _type.OWNER && s.NAME == _type.TYPE_NAME && s.TYPE.Equals("TYPE")) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList(), string.Empty).GetAsString(); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[TYPE_DEF]", typeDefString)); }
public override string GetSqlString() { var functionDefString = new CollectionToString(null, string.Empty) .GetAsString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _function.OWNER && s.NAME == _function.OBJECT_NAME && s.TYPE == _function.OBJECT_TYPE) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[FUNCTION_DEF]", functionDefString)); }
public override string GetSqlString() { var typeDefString = new CollectionToString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _type.OWNER && s.NAME == _type.TYPE_NAME && s.TYPE.Equals("TYPE")) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList(), string.Empty).GetAsString(); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[TYPE_DEF]", typeDefString); }
public override string GetSqlString() { var procedureSpecString = new CollectionToString(null, string.Empty) .GetAsString( DbContext.DBA_SOURCE .Where( s => s.OWNER == _procedure.OWNER && s.NAME == _procedure.OBJECT_NAME && s.TYPE == _procedure.OBJECT_TYPE) .OrderBy(s => s.LINE) .Select(s => s.TEXT) .ToList()); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[PROCEDURE_SPEC]", procedureSpecString); }
public override string GetSqlString() { var columnsList = new CollectionToString( DbContext.DBA_TAB_COLUMNS .Where(c => c.OWNER == _mview.OWNER && c.TABLE_NAME == _mview.MVIEW_NAME) .OrderBy(c => c.COLUMN_ID) .Select(v => v.COLUMN_NAME) .ToList(), ",\n\t").GetAsString().ToLowerInvariant(); return(TemplateStrings.GetTemplate(TemplateFileName) .Replace("[MVIEW_NAME]", _mview.MVIEW_NAME.ToLowerInvariant()) .Replace("[COLUMNS_LIST]", "\n\t" + columnsList) .Replace("[QUERY]", _mview.QUERY) .Replace("[BUILD_MODE]", string.IsNullOrEmpty(_mview.BUILD_MODE) ? string.Empty : "build " + _mview.BUILD_MODE.ToLowerInvariant() + "\n") .Replace("[REFRESH_METHOD]", string.IsNullOrEmpty(_mview.REFRESH_METHOD) ? string.Empty : "refresh " + _mview.REFRESH_METHOD.ToLowerInvariant() + "\n") .Replace("[REFRESH_MODE]", string.IsNullOrEmpty(_mview.REFRESH_MODE) ? string.Empty : "on " + _mview.REFRESH_MODE.ToLowerInvariant() + "\n") .Replace("[QUERY_REWRITE]", (_mview.REWRITE_ENABLED.Equals("Y") ? "enable" : "disable") + " query rewrite\n")); }
public override string GetSqlString() { var columnsList = new CollectionToString( DbContext.DBA_TAB_COLUMNS .Where(c => c.OWNER == _mview.OWNER && c.TABLE_NAME == _mview.MVIEW_NAME) .OrderBy(c => c.COLUMN_ID) .Select(v => v.COLUMN_NAME) .ToList(),",\n\t").GetAsString().ToLowerInvariant(); return TemplateStrings.GetTemplate(TemplateFileName) .Replace("[MVIEW_NAME]", _mview.MVIEW_NAME.ToLowerInvariant()) .Replace("[COLUMNS_LIST]", "\n\t" + columnsList) .Replace("[QUERY]", _mview.QUERY) .Replace("[BUILD_MODE]", string.IsNullOrEmpty(_mview.BUILD_MODE) ? string.Empty : "build " + _mview.BUILD_MODE.ToLowerInvariant() + "\n") .Replace("[REFRESH_METHOD]", string.IsNullOrEmpty(_mview.REFRESH_METHOD) ? string.Empty : "refresh " + _mview.REFRESH_METHOD.ToLowerInvariant() + "\n") .Replace("[REFRESH_MODE]", string.IsNullOrEmpty(_mview.REFRESH_MODE) ? string.Empty : "on " + _mview.REFRESH_MODE.ToLowerInvariant() + "\n") .Replace("[QUERY_REWRITE]", (_mview.REWRITE_ENABLED.Equals("Y") ? "enable" : "disable") + " query rewrite\n"); }
public override string GetSqlString() { LoadPrimaryKeysCollection(); LoadOtherConstraintsCollection(); const string separatorString = ","; const bool newLineBetweenCollectionItems = true; var collectionToStringTool = new CollectionToString( null, separatorString, newLineBetweenCollectionItems); var primaryKeyString = collectionToStringTool.GetAsString( _primaryKeysCollection .Select(c => new PrimaryKeyConstraintSqlGenerator(DbContext, c).GetSqlString()) .ToList()); var otherConstraintsString = collectionToStringTool.GetAsString( _otherConstraintsCollection .Select(c => new OtherConstraintSqlGenerator(DbContext, c).GetSqlString()) .ToList()); var sqlStringBuilder = new StringBuilder(); if (!string.IsNullOrEmpty(primaryKeyString)) { sqlStringBuilder.AppendLine(separatorString); sqlStringBuilder.AppendLine(); sqlStringBuilder.Append(primaryKeyString); } if (!string.IsNullOrEmpty(otherConstraintsString)) { sqlStringBuilder.AppendLine(separatorString); sqlStringBuilder.AppendLine(); sqlStringBuilder.Append(otherConstraintsString); } return(sqlStringBuilder.ToString()); }
public override string GetSqlString() { LoadPrimaryKeysCollection(); LoadOtherConstraintsCollection(); const string separatorString = ","; const bool newLineBetweenCollectionItems = true; var collectionToStringTool = new CollectionToString( null, separatorString, newLineBetweenCollectionItems); var primaryKeyString = collectionToStringTool.GetAsString( _primaryKeysCollection .Select(c => new PrimaryKeyConstraintSqlGenerator(DbContext, c).GetSqlString()) .ToList()); var otherConstraintsString = collectionToStringTool.GetAsString( _otherConstraintsCollection .Select(c => new OtherConstraintSqlGenerator(DbContext, c).GetSqlString()) .ToList()); var sqlStringBuilder = new StringBuilder(); if (!string.IsNullOrEmpty(primaryKeyString)) { sqlStringBuilder.AppendLine(separatorString); sqlStringBuilder.AppendLine(); sqlStringBuilder.Append(primaryKeyString); } if (!string.IsNullOrEmpty(otherConstraintsString)) { sqlStringBuilder.AppendLine(separatorString); sqlStringBuilder.AppendLine(); sqlStringBuilder.Append(otherConstraintsString); } return sqlStringBuilder.ToString(); }
public override string GetSqlString() { var constraintColumnsList = new CollectionToString( DbContext.DBA_CONS_COLUMNS .Where(c => c.OWNER == _constraint.OWNER && c.CONSTRAINT_NAME == _constraint.CONSTRAINT_NAME) .OrderBy(c => c.POSITION) .Select(c => c.COLUMN_NAME) .ToList(), ",\n\t\t").GetAsString().ToLowerInvariant(); return "\t" + (TemplateStrings.GetTemplate(TemplateFileName) .Replace("[CONSTRAINTNAME]", _constraint.CONSTRAINT_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTTYPE]", _constraint.CONSTRAINT_TYPE.Equals("C") ? "\n\tcheck" : _constraint.CONSTRAINT_TYPE.Equals("U") ? " unique" : string.Empty) .Replace("[CONSTRAINTCOLUMNS]", _constraint.CONSTRAINT_TYPE.Equals("C") ? _constraint.SEARCH_CONDITION.ToLowerInvariant().Trim() : constraintColumnsList) .Replace("[CONSTRAINTSTATE]", _constraint.STATUS.Equals("DISABLED") ? " disable" : string.Empty) .Replace("\t","\t\t")); }
public override string GetSqlString() { var constraintColumnsList = new CollectionToString( DbContext.DBA_CONS_COLUMNS .Where(c => c.OWNER == _constraint.OWNER && c.CONSTRAINT_NAME == _constraint.CONSTRAINT_NAME) .OrderBy(c => c.POSITION) .Select(c => c.COLUMN_NAME) .ToList(), ",\n\t\t").GetAsString().ToLowerInvariant(); return("\t" + (TemplateStrings.GetTemplate(TemplateFileName) .Replace("[CONSTRAINTNAME]", _constraint.CONSTRAINT_NAME.ToLowerInvariant()) .Replace("[CONSTRAINTTYPE]", _constraint.CONSTRAINT_TYPE.Equals("C") ? "\n\tcheck" : _constraint.CONSTRAINT_TYPE.Equals("U") ? " unique" : string.Empty) .Replace("[CONSTRAINTCOLUMNS]", _constraint.CONSTRAINT_TYPE.Equals("C") ? _constraint.SEARCH_CONDITION.ToLowerInvariant().Trim() : constraintColumnsList) .Replace("[CONSTRAINTSTATE]", _constraint.STATUS.Equals("DISABLED") ? " disable" : string.Empty) .Replace("\t", "\t\t"))); }
static void TestSinglyLinkedList() { Console.WriteLine(" ***** Singly Linked List Implementation ***** "); MyLinkedList <int> testList = new MyLinkedList <int>(); //testing AddFirst for (int i = 0; i < 6; i++) { testList.AddFirst(i); } CollectionToString CtoS = new CollectionToString(); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //test reverse testList.Reverse(); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //test AddLast testList.AddLast(7); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //test AddAfter //after head testList.AddAfter(5, 6); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //in middle testList.AddAfter(4, 5); //after end testList.AddAfter(7, 8); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //handle miss testList.AddAfter(9, 3); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //test AddBefore //before head testList.AddBefore(5, 4); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //in middle testList.AddBefore(3, 4); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //before last testList.AddBefore(8, 7); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //handle miss testList.AddBefore(9, 3); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //test DeleteAt //first testList.DeleteAt(4); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //middle testList.DeleteAt(4); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //end testList.DeleteAt(8); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); //handle miss testList.DeleteAt(9); Console.WriteLine(CtoS.MyLinkedListReporter(testList)); }