Как и название, я пытаюсь заполнить список в приложении WPF информацией из csv. В идеале я хочу отображать каждую строку из csv, но только определенные столбцы, то есть с данными о пригодности, у меня было бы имя, фамилия, DOB, пол и т. Д., Но я бы отображал только имя и фамилию. Мой код выглядит следующим образом:Заполнение списка из csv через список <>
public partial class PatientList : Window
{
int x = 0;
public PatientList()
{
InitializeComponent();
HumanResources ListAllPatients = new HumanResources();
List<PatientInformation> AllPatients = ListAllPatients.PopPatientList();
foreach (PatientInformation PatientChoice in AllPatients)
{
lboxPatients.Items.Add(AllPatients[x]);
x += 1;
}
}
класс людских ресурсов
public List<PatientInformation> PopPatientList()
{
DataAccess PatientList4Doc = new DataAccess();
List<PatientInformation> DocsPatients = PatientList4Doc.ListofPatients();
return DocsPatients;
}
доступа к данным класса
class DataAccess
{
public List<PatientInformation> ListofPatients()
{
List<PatientInformation> ListofPatients = new List<PatientInformation>();
string[] UserData = File.ReadAllLines("UserList.csv");
foreach (string Person in UserData)
{
string[] PersonInfo = Person.Split(',');
PatientInformation Patient = new PatientInformation()
{
Username = PersonInfo[0].ToUpper(),
LastName = PersonInfo[1],
FirstName = PersonInfo[2],
DOB = Convert.ToDateTime(PersonInfo[3]),
Gender = Convert.ToChar(PersonInfo[4]),
Height = Convert.ToInt16(PersonInfo[5]),
Weight = Convert.ToInt16(PersonInfo[6]),
CaloricIntake = PersonInfo[7],
WaterDrank = PersonInfo[8],
CaloriesBurned = PersonInfo[9],
TimeSlept = PersonInfo[10],
ContextMessage = PersonInfo[11],
Replymessage = PersonInfo[12]
};
ListofPatients.Add(Patient);
}
return ListofPatients;
}
Информация для пациентов Класс
public class PatientInformation
{
public string Username { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public DateTime DOB { get; set; }
public char Gender { get; set; }
public int Height { get; set; }
public int Weight { get; set; }
public string CaloricIntake { get; set; }
public string WaterDrank { get; set; }
public string CaloriesBurned { get; set; }
public string TimeSlept { get; set; }
public string ContextMessage { get; set; }
public string Replymessage { get; set; }
}
Все работает отлично, пока я не пытаться заполнить l istbox. Когда я пытаюсь прочитать информацию, все, что я получаю, это путь кода, а не желаемая информация. Мой вопрос: как только я получаю всю информацию, полученную из CSV, как я могу затем распечатать ее в списке и показать, как она работает с PatientInformation? Заранее спасибо за любую помощь
EDIT
@Hypnos: Я реализовал свое предложение следующим образом:
I tried implementing your example like so: HumanResources ListAllPatients = new HumanResources();
List<PatientInformation> AllPatients = ListAllPatients.PopPatientList();
List<PatientInformation> p = new List<PatientInformation>();
p.Add(new PatientInformation() { Username = Convert.ToString(AllPatients[0]), FirstName = Convert.ToString(AllPatients[2]), LastName = Convert.ToString(AllPatients[1]) });
lboxPatients.ItemsSource = p;
Однако это возвращает исключение «Index был из диапазон должен быть неотрицательным и меньше размера коллекции "