Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 连接两个类?_C#_Wpf_Class_Xaml_Oop - Fatal编程技术网

C# 连接两个类?

C# 连接两个类?,c#,wpf,class,xaml,oop,C#,Wpf,Class,Xaml,Oop,我正在尝试创建一个系统,允许您创建一个医院病房,然后将带有个人详细信息的患者添加到每个病房。 目的是能够从单个文本/csv文件中读取所有信息 我目前拥有创建患者并添加其详细信息的代码,但创建病房并将患者分配到病房是我无法掌握的。 我的讲师建议在病房课堂上使用一系列患者作为财产,但目前我无法理解。 一个典型的病人会写在我的文本文件中 “JoeBloggs,28,03/03/1989,8” 下面的代码对属性等进行排序 以下是我当前创建患者的代码: private void btnLoad_Clic

我正在尝试创建一个系统,允许您创建一个医院病房,然后将带有个人详细信息的患者添加到每个病房。 目的是能够从单个文本/csv文件中读取所有信息

我目前拥有创建患者并添加其详细信息的代码,但创建病房并将患者分配到病房是我无法掌握的。 我的讲师建议在病房课堂上使用一系列患者作为财产,但目前我无法理解。 一个典型的病人会写在我的文本文件中 “JoeBloggs,28,03/03/1989,8” 下面的代码对属性等进行排序

以下是我当前创建患者的代码:

 private void btnLoad_Click(object sender, RoutedEventArgs e)
    {
        //read files from file
        string[] patientList = File.ReadAllLines("MyList.txt");
        string[] patientArray = new string[4];
        string patientLong, name;
        Patient patient;
        int age, blood;
        DateTime dob;
        .

        for (int i = 0; i < patientList.Length; i++)
        {
            patientLong = patientList[i];//one long string with commas eg johnmurphy,22,12/9/1998,6
            patientArray = patientLong.Split(',');//split array according to comma
            name = patientArray[0];
            age = Convert.ToInt32(patientArray[1]);
            dob = DateTime.Parse(patientArray[2]);
            blood = Convert.ToInt32(patientArray[3]);


            patient = new Patient(name,age,dob,blood);
            bookList.Add(patient);

        }

       // lbxExpenses.ItemsSource = null;
        lstPatients.ItemsSource = patientList;
    }

解决方案不是使用数组,而是使用通用列表

class Ward
{
    public string Name { get; set; }

    public List<Patient> Patients { get; set; }//array of patients as a property?

    public Ward(string name)
    {
        Name = name;
        Patients = new List<Patient>();
    }

    public string GetWardDetails()
    {
        return string.Format("{0}", Name);
    }
}
如果你想移除

ward.Patients.Remove(/*An already-existing patient object in the ward*/);
可以在这里找到。问题是数组不会调整大小,而列表会调整大小。因此,当您阅读文件时,您可以随时向病房添加新患者。此外,在实例化新对象时,您希望将该对象实例化为其类型。当您执行
=new int[0]
时,您告诉它将类型Patient指定为int,而它没有可能为int类型的字段/属性。这并不是说您永远不会将一种类型指定给另一种类型,但通常只有在您想要实现的情况下才会这样做

如果您希望继续使用数组,则必须按照以下步骤进行操作:

class Ward
{
    public string Name { get; set; }

    public Patient[] Patients { get; private set; }

    public Ward(string name, IEnumerable<Patient> Patients)
    {
        Name = name;
        this.Patients = Patients.ToArray();
    }

    public Ward(string name, Patient[] Patients)
    {
        Name = name;
        Patients = Patients;
    }

    public string GetWardDetails()
    {
        return string.Format("{0}", Name);
    }
}
班级病房
{
公共字符串名称{get;set;}
公共患者[]患者{get;private set;}
公共病房(字符串名称,IEnumerable Patients)
{
名称=名称;
this.Patients=Patients.ToArray();
}
公共病房(字符串名称,患者[]患者)
{
名称=名称;
患者=患者;
}
公共字符串GetWardDetails()
{
返回string.Format(“{0}”,Name);
}
}

干杯伙伴:)

解决方案不是使用数组,而是使用通用列表

class Ward
{
    public string Name { get; set; }

    public List<Patient> Patients { get; set; }//array of patients as a property?

    public Ward(string name)
    {
        Name = name;
        Patients = new List<Patient>();
    }

    public string GetWardDetails()
    {
        return string.Format("{0}", Name);
    }
}
如果你想移除

ward.Patients.Remove(/*An already-existing patient object in the ward*/);
可以在这里找到。问题是数组不会调整大小,而列表会调整大小。因此,当您阅读文件时,您可以随时向病房添加新患者。此外,在实例化新对象时,您希望将该对象实例化为其类型。当您执行
=new int[0]
时,您告诉它将类型Patient指定为int,而它没有可能为int类型的字段/属性。这并不是说您永远不会将一种类型指定给另一种类型,但通常只有在您想要实现的情况下才会这样做

如果您希望继续使用数组,则必须按照以下步骤进行操作:

class Ward
{
    public string Name { get; set; }

    public Patient[] Patients { get; private set; }

    public Ward(string name, IEnumerable<Patient> Patients)
    {
        Name = name;
        this.Patients = Patients.ToArray();
    }

    public Ward(string name, Patient[] Patients)
    {
        Name = name;
        Patients = Patients;
    }

    public string GetWardDetails()
    {
        return string.Format("{0}", Name);
    }
}
班级病房
{
公共字符串名称{get;set;}
公共患者[]患者{get;private set;}
公共病房(字符串名称,IEnumerable Patients)
{
名称=名称;
this.Patients=Patients.ToArray();
}
公共病房(字符串名称,患者[]患者)
{
名称=名称;
患者=患者;
}
公共字符串GetWardDetails()
{
返回string.Format(“{0}”,Name);
}
}

干杯,伙计:)

Patient=newint[i]
公共患者[]患者{get;set;}
错误。您必须实例化
Patient
对象的数组。另外,
i
在当前上下文中不存在。正确的方法是使用
列表
,您可以在其中动态添加患者对象。(即使用
System.Collections.Generic
namespace)。看看
https://www.dotnetperls.com/list
如果您想使用它。另一种可能是分配一个固定长度的数组,比如说,10个病人,你可以用
patients=新病人[10]来完成(同时重命名道具)好的,我想我知道你的意思,但我不太明白。我目前在我的主窗口中使用System.Collections.ObjectModel。你能更具体地说明你想归档什么吗?它是关于创建病房并添加患者,还是关于读取具有预定义关系的CSV文件并显示病房和相关患者?理想情况下,我应该能够从CSV读取预定义的测试数据,但也能够将数据添加到CSV。我可以在我的程序中将数据添加到CSV文件中,但我只是想了解如何创建病房对象,然后在每个病房内创建多个患者对象,这让我很烦恼。这就是我希望它的工作方式:创建Ward1-->创建患者A,创建患者B等C CreateWard2-->患者C等,问题是什么?你是否在问讲师“但是创建一个病房并将患者分配到病房”是什么意思?
Patient=new int[i]
公共患者[]患者{get;set;}
错误。您必须实例化
Patient
对象的数组。另外,
i
在当前上下文中不存在。正确的方法是使用
列表
,您可以在其中动态添加患者对象。(即使用
System.Collections.Generic
namespace)。看看
https://www.dotnetperls.com/list
如果您想使用它。另一种可能是分配一个固定长度的数组,比如说,10个病人,你可以用
patients=新病人[10]来完成(同时重命名道具)好的,我想我知道你的意思,但我不太明白。我目前在我的主窗口中使用System.Collections.ObjectModel。你能更具体地说明你想归档什么吗?它是关于创建病房并添加患者,还是关于读取具有预定义关系的CSV文件并显示病房和相关患者?理想情况下,我应该能够从CSV读取预定义的测试数据,但也能够将数据添加到CSV。我可以在我的程序中将数据添加到CSV文件中,但我只是想了解如何创建病房对象,然后创建多个患者