Hi cilerler:
To your last question, "About "Let clause doesn't have access for previous value" that's the whole point of this question, I mean it should have it, since Linq has Aggregate ability.", As I stated in your other question you have and my answer re-posted below it can not be accomplished with the Aggregate method
From Microsoft documentation:
http://msdn.microsoft.com/en-us/library/bb548651.aspxThe Aggregate method makes it simple to perform a calculation over a sequence of values. This method works by calling func one time for each element in source. Each time func is called, Aggregate passes both the element from the sequence and an aggregated value (as the first argument to func). The first element of source is used as the initial aggregate value. The result of func replaces the previous aggregated value. Aggregate returns the final result of func.
The Aggregate method works on a sequence from beginning to end and returns a single value. This is the same for Count, Sum, Min, Max, and Average methods so will not serve your needs.
Fernando