Based on your comments (which was not your original question), you can perform the following query:
var q = session.Query<Student>()
.Where(x => x.Subjects.Any(y => y == 22))
.Intersect()
.Where(x => x.Subjects.Any(y => y == 25));
The equivalent Lucene query would be:
Subjects:22 INTERSECT Subjects:25
Given this data:
Student { Id = 1, Subjects = new List<int> { 22, 23, 25 } }
Student { Id = 2, Subjects = new List<int> { 22, 25 } }
Student { Id = 3, Subjects = new List<int> { 23, 25} }
Student { Id = 4, Subjects = new List<int> { 22 } }
Only students 1 and 2 will be returned, because 3 and 4 do not have both values.
You can read more about Intersection Queries in the documentation.