Aggregate Algorithm Linq

CSharp · Console

/Program.cs

using System;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Collections.Generic;

public class Program
{
	public static void Main()
	{
		
		// Remove empty spaces from start and end then remove first and last character from the string and then convert remaining string into uppercase
		// Func<string, string> mean that function takes a string input and provide string output
		var transformationPipeLine = new List<Func<string, string>>();
		transformationPipeLine.Add((input) => input.Trim());
		transformationPipeLine.Add((input) => input.Substring(1));
		transformationPipeLine.Add((input) => input.Substring(0, input.Length - 1));
		transformationPipeLine.Add((input) => input.ToUpper());

		var text = " 1Manish Jain0 ";
		var output = transformationPipeLine.Aggregate(text, (input, transform)=> transform(input));
		Console.WriteLine(output);
		
		var chars = Enumerable.Range(1,1000000).Select(i=>"S"+i).AsEnumerable();
        Stopwatch stopWatch = new Stopwatch();
        stopWatch.Restart();

		var csv1 = chars.Aggregate(new StringBuilder(), (a,b) => {   if(a.Length>0)  a.Append(","); a.Append(b); return a;});
        stopWatch.Stop();
        Console.WriteLine(stopWatch.Elapsed.TotalSeconds.ToString("f2") +" seconds = Aggregate w/ String Builder ");
            
		Stopwatch stopWatch1 = new Stopwatch();
        stopWatch1.Restart();
		Console.WriteLine("After Restart");
        var csv2 = string.Join(",",chars);
		Console.WriteLine("Before Stop");
        stopWatch1.Stop();
        Console.WriteLine(stopWatch1.Elapsed.TotalSeconds.ToString("f2") + " seconds = String.Join ");
	}
}
;