public List<TestData> GetData (string sortExpression) { if (String.IsNullOrEmpty (sortExpression)) return data; bool ascending; string field; int subtract; if (sortExpression.EndsWith (" desc", StringComparison.OrdinalIgnoreCase)) { ascending = false; subtract = 5; } else { ascending = true; subtract = 0; } if (subtract == 0) field = sortExpression; else field = sortExpression.Substring (0, sortExpression.Length - subtract); TestDataComparer comparer; if (String.Compare (field, "ProductName", StringComparison.OrdinalIgnoreCase) == 0) comparer = new TestDataComparer (false, ascending); else comparer = new TestDataComparer (true, ascending); data.Sort (comparer); return data; }
public List <TestData> GetData(string sortExpression) { if (String.IsNullOrEmpty(sortExpression)) { return(data); } bool ascending; string field; int subtract; if (sortExpression.EndsWith(" desc", StringComparison.OrdinalIgnoreCase)) { ascending = false; subtract = 5; } else { ascending = true; subtract = 0; } if (subtract == 0) { field = sortExpression; } else { field = sortExpression.Substring(0, sortExpression.Length - subtract); } TestDataComparer comparer; if (String.Compare(field, "ProductName", StringComparison.OrdinalIgnoreCase) == 0) { comparer = new TestDataComparer(false, ascending); } else { comparer = new TestDataComparer(true, ascending); } data.Sort(comparer); return(data); }
public void Runtime_of_N(int array1Size) { var array1 = Enumerable.Range(0, array1Size).Select(x => new TestData(x)).ToArray(); var set = new HashSet <TestData>(); var unique = new List <TestData>(); var comparer = new TestDataComparer(); var stopwatch = Stopwatch.StartNew(); foreach (var t in array1) { if (!set.Contains(t, comparer)) { set.Add(t); unique.Add(t); } } stopwatch.Stop(); Debug.WriteLine($"{nameof(Runtime_of_N)} took {stopwatch.ElapsedMilliseconds} ms"); unique.Count.Should().Be(array1Size); stopwatch.ElapsedMilliseconds.Should().BeLessThan(100); }