private void Select(MemberInitExpression expression, ExpressionParameter parameter, bool isSingle)
 {
     foreach (MemberBinding binding in expression.Bindings)
     {
         if (binding.BindingType != MemberBindingType.Assignment)
         {
             throw new NotSupportedException();
         }
         MemberAssignment memberAssignment = (MemberAssignment)binding;
         var memberName = memberAssignment.Member.Name;
         var item       = memberAssignment.Expression;
         if (IsNullable(item) && item is UnaryExpression)
         {
             var memtype = ExpressionTool.GetMemberInfoType(memberAssignment.Member);
             if (IsNullable(memtype) && UtilMethods.GetUnderType(memtype) == UtilMethods.GetUnderType(item.Type))
             {
                 item = (item as UnaryExpression).Operand;
             }
         }
         ResolveNewExpressions(parameter, item, memberName);
     }
 }