С LINQ:
List<string> l = new List<string> { "1", "2", "3" ,"4","5"};
List<string> l2 = l.Skip(1).Take(2).ToList();
Если вам нужен foreach, то ToList не нужен:
foreach (string s in l.Skip(1).Take(2)){}
Преимущество LINQ заключается в том, что если вы хотите просто пропустить какой-либо ведущий элемент, вы можете:
List<string> l2 = l.Skip(1).ToList();
foreach (string s in l.Skip(1)){}
т.е. не нужно заботиться о количестве / длине и т. д.