Salakhetdinov Shamil
mcp2004 at mail.ru
Thu Apr 26 18:28:25 CDT 2012
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