Hans-Christian Andersen
hans.andersen at phulse.com
Thu Apr 26 22:04:50 CDT 2012
What sort of sorting algorithm is .orderby using internally? - Hans Sent from my iPhone On 2012-04-26, at 4:28 PM, Salakhetdinov Shamil <mcp2004 at mail.ru> wrote: > Hi All -- > > Just wanted to share a couple of test code samples I've got written here while working on real life development task. > Please review, comment, remark, write your own versions. > > Test 1 > ===== > > public void TestSort() > { > // simulate reading products' .csv file into text string > StringBuilder text = new StringBuilder() > .AppendLine("P1|12.34").AppendLine("P2|5.28").AppendLine("P3|21.74") > .AppendLine("P4|67.12").AppendLine("P5|23.98"); > > // parse text string and add parsed items n into an array list > ArrayList products = new ArrayList(); > foreach (string textLine in text.ToString().Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) > { > products.Add(new { Name = textLine.Substring(0, 2), Price = Decimal.Parse(textLine.Substring(3)) }); > } > > // print sorted products list > foreach (var product in (from p in products.Cast<dynamic>().OrderBy(x => x.Price) select p)) > { > System.Console.WriteLine(product); > } > } > > Test 2 (Test 1 variation using yield return) > ================================ > > public void TestSort2() > { > // print sorted products list > foreach (var product in (from p in GetProducts().OrderBy(x => x.Price) select p)) > { > System.Console.WriteLine(product); > } > } > > public IEnumerable<dynamic> GetProducts() > { > // simulate reading products' .csv file into text string > StringBuilder text = new StringBuilder() > .AppendLine("P1|12.34").AppendLine("P2|5.28").AppendLine("P3|21.74") > .AppendLine("P4|67.12").AppendLine("P5|23.98"); > > // parse text string and add parsed item to IEnumerable<dynamic> using yield return > foreach (string textLine in text.ToString().Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) > { > yield return new { Name = textLine.Substring(0, 2), Price = Decimal.Parse(textLine.Substring(3)) }; > } > } > > Thank you. > > -- Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com >