Return a set of records only if they are in certain order
<p>I have a table with the following records ordered by timestamp</p>

<pre><code>Id   TimeStamp      Action
--   ---------      ------
1    #1             ActionType#1
2    #2             ActionType#2
3    #3             ActionType#2
4    #4             ActionType#1
5    #5             ActionType#3
.    .              .
.    .              .
.    .              .
52   #52             ActionType#1
53   #53             ActionType#2
.    .              .
</code></pre>

<p>I want to write a query that would return to me a set of records, only if the records are in a particular sequence order. </p>

<p>For example on the data above, I want a query to:
"Get when Action#2 occurred after Action#1, in sequence, as per timestamp order."</p>

<p>Should return to me:</p>

<pre><code>##First matching sequence

2    #2             ActionType#1 
3    #3             ActionType#2 
##Second matching sequence

52   #2             ActionType#1 
53   #3             ActionType#2
</code></pre>

<p>Note: This is in an ASP.NET application so LINQ style answers are welcome</p>