Ciao freemark,
potresti provare con una query di questo tipo:
var q = stateList
.FirstOrDefault(x => x.CurrentState == state1
&& x.RequestList.FirstOrDefault(t => t == a) != null);
if(q != null)
state2 = q.NextState;
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo