C # LINQ construir expresión con tipo anónimo

Tengo código que construye la lista solo con una propiedad "Nombre". Cómo modificar el código para que pueda construir una lista con dos propiedades "Nombre" y "Test_Result" Sé que se puede usar el tipo anónimo para realizar esto, pero ¿cómo colocarlos en expresiones dinámicas? Aquí está mi código:

string item = "Name";
string item2 = "Test_Result";
Type studentType = typeof(Student);

ParameterExpression itemParam = Expression.Parameter(studentType, item);
MemberInfo itemProperty = studentType.GetProperty(item);

MemberExpression valueInItemField = 
    Expression.MakeMemberAccess(itemParam, itemProperty);

Expression<Func<Student, string>> selectExpression =
    Expression<Func<Student, string>>
        .Lambda<Func<Student, string>>(valueInItemField, itemParam);

IEnumerable<string> currentItemFields = 
    DeserializedStudents.Select(selectExpression.Compile());

Respuestas a la pregunta(1)

Su respuesta a la pregunta