Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Diagnostics;
- using System.Text.RegularExpressions;
- namespace RegexLinqStringParsing
- {
- class Program
- {
- static void Main(string[] args)
- {
- string noLongWords = "abcd abcd ab xyz sample test";
- string oneLongWordAtEnd = "xyz abc 88b zsy abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdea";
- string oneLongWordAtBegining = "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdea xyz abc 88b zsy";
- string manyLongWordsEverywhere =
- @"abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdea
- abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdea abcd xyz
- abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdea yz
- abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdea";
- int iterations = 1000000;
- Linq(iterations, noLongWords, "noLongWords");
- Linq(iterations, oneLongWordAtEnd, "oneLongWordAtEnd");
- Linq(iterations, oneLongWordAtBegining, "oneLongWordAtBegining");
- Linq(iterations, manyLongWordsEverywhere, "manyLongWordsEverywhere");
- Regex(iterations, noLongWords, "noLongWords");
- Regex(iterations, oneLongWordAtEnd, "oneLongWordAtEnd");
- Regex(iterations, oneLongWordAtBegining, "oneLongWordAtBegining");
- Regex(iterations, manyLongWordsEverywhere, "manyLongWordsEverywhere");
- Console.WriteLine("DONE");
- Console.ReadLine();
- }
- private static void Linq(int iterations, string input, string inputName)
- {
- bool isLong = false;
- Stopwatch watch = new Stopwatch();
- watch.Start();
- for (int i = 0; i < iterations; i++)
- {
- isLong = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
- .Any(s => s.Length > 50);
- }
- watch.Stop();
- Console.WriteLine("LINQ [{0}], {1} iterations. Result = {2}: {3} ms",
- inputName, iterations, isLong, watch.ElapsedMilliseconds);
- }
- private static void Regex(int iterations, string input, string inputName)
- {
- bool isLong = false;
- Regex regex = new Regex(@"(\w){50,}");
- Stopwatch watch = new Stopwatch();
- watch.Start();
- for (int i = 0; i < iterations; i++)
- {
- isLong = regex.IsMatch(input);
- }
- watch.Stop();
- Console.WriteLine("Regex [{0}], {1} iterations. Result = {2}: {3} ms",
- inputName, iterations, isLong, watch.ElapsedMilliseconds);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement