I have three different types of solutions for this issue, but you have to think about the performance to choose the right one :-
When UserProfile ID value unknown
In above two cases you need to know the ID value for the UserProfile to get data. If you don't have any ID value and you need to store and fetch all those records at a time in session then we can go like below by storing user list into session, but remember this way is good if no of records are not huge not expected to grow which needs to be placed in session.
I) Storing multiple UserProfile data into session.
List<UserProfile> listUserProfile = new List<UserProfile>();
UserProfile objUserProfile1 = new UserProfile();
objUserProfile1.Id = Id1;
objUserProfile1.FirstName = firstname1;
objUserProfile1.LastName = surname1;
objUserProfile1.Email = emailaccount1;
UserProfile objUserProfile2 = new UserProfile();
objUserProfile2.Id = Id2;
objUserProfile2.FirstName = firstname2;
objUserProfile2.LastName = surname2;
objUserProfile2.Email = emailaccount2;
listUserProfile.Add(objUserProfile1);
listUserProfile.Add(objUserProfile2);
Session["UserProfileData"] = listUserProfile;
When UserProfile ID value known
II) Create a new Model class for each UseProfile holding all the properties and maintain the object of that class into session and the session key should be the UserProfile unique ID.
Ex :-
UserProfile objUserProfile = new UserProfile();
objUserProfile.Id = Id;
objUserProfile.FirstName = firstname;
objUserProfile.LastName = surname;
objUserProfile.Email = emailaccount;
Session["UserData_" + objUserProfile.Id] = objUserProfile;
Se here i have concatenated the UserProfile-id value to the session key name so that it will maintain separate session for different users when multiple records are obtained.
III) Another way is to store all the data separately by concatenating field name and Id value to the key for the session to store values.
Ex:-
Session["UserProfileData_ID_" + objUserProfile.Id] = objUserProfile;
Session["UserProfileData_FirstName_" + objUserProfile.Id] = objUserProfile;
Session["UserProfileData_LastName_" + objUserProfile.Id] = objUserProfile;
Session["UserProfileData_Email_" + objUserProfile.Id] = objUserProfile;
NOTE : The code as part of the above discussion are for example purposes only.
Hope this will definitely of help to you.