Expressão de compilação C # LINQ com tipo anônimo

Eu tenho código que cria lista apenas com uma propriedade "Nome". Como modificar o código para que possa construir uma lista com duas propriedades "Name" e "Test_Result" Eu sei que o tipo anônimo pode ser usado para executar isso, mas como colocá-los em expressões dinâmicas? aqui está o meu 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());

questionAnswers(1)

yourAnswerToTheQuestion