在文本框中显示人物 class 数据 C#

displaying person class data in text boxes C#

]我需要使用 windows 形式在 C# 中编写一个小程序 - 我是 C# 和编程的新手,所以请不要理会我。 假设我有 10 位医生 (laege),我想显示每位医生的信息,例如 CVR 号码、地址、电子邮件等——许多不同的值(bool、int、strings) 我创建了一个名为 praksisOplysninger 的 class(医生的信息) 在我的按钮处理程序中添加了一位医生 (laege1)。 我如何显示数据,当用户输入 yderNr - 然后需要显示其余信息 - 我为此制作了几个文本框。 现在我收到一个调用许多递归的错误 - 我需要在我的 class 医生中停止我的循环 - 我已经尝试了几个小时 - 请帮忙 提前谢谢 :)

Blockquote

**这是我的 class 医生 - 我的 class 中有 laege1-10 ** laege 相当于丹麦的医生 ;) 现在我得到一个递归错误.. 我怎样才能停止循环?按钮处理程序中的代码没有错误。

`laegeInfo laege1 = new laegeInfo()
    {
        yderNr = 012345,
        navn = "Johannes Andersen",
        CVR = 4100,
        adresse = "Frederiksvej 15, Faxe",
        telefon = 32424323,
        email = "JAplo@.dgm",
        kommune = 4640,
        solo = true,
        flermands = false,
        besoeg = 20,
        FMKBesoeg = true,
        sidsteBesoeg = new DateTime(2016, 6, 3)

`{

Blockquote

      var  userInput = int.Parse(txtPraksisoplysningerYderNr.Text);
        var laege = laeger.SingleOrDefault(d => d.Ydernr == userInput);
        if(laege != null)
        {
            txtLaegensNavn.Text = laege.Navn;
            txtCVR.Text = laege.Cvr.ToString();
            txtLaegensAdresse.Text = laege.Adresse;
            txtlaegenstlfNR.Text = laege.Telefon.ToString();
            txtLaegensEmail.Text = laege.Email;
            txtLaegensKommune.Text = laege.Kommune.ToString();

        }

        btnFindLaegeOplysning.Show();

假设您在某处存储了一些医生列表(数据库、医生 class 本身中的静态列表等),您可以使用 LINQ 检索特定的医生对象,其中它是 yderNr 属性等于用户输入的那个。 例如:

public class Doctor
{
    public string Name { get; set; }
    public int PhoneNumber { get; set; }
    public int YderNr { get; set; }
}

public class Program
{
    public static void Main(string[] args)
    {
        var doctors = new List<Doctor>
        {
            new Doctor()
            {
                Name = "Jens Andersen",
                PhoneNumber = 12345567,
                YderNr = 02131
            }
        };

        var userInput = int.Parse(txtPraksisoplysningerYderNr.Text);

        var doctor = doctors.SingleOrDefault(d => d.YderNr == userInput);

        if (doctor != null)
        {
            // Set the textbox text with the doctor's data
        }
    }
}

有关 LINQ 的 SingleOrDefault() 方法的更多信息,click here

更新:

我不确定您的文本框名称是什么,但在上面代码片段的 if 语句中,您如何将文本框的文本设置为医生的数据:

if (doctor != null)
{
    // Set the textbox text with the doctor's data
    txtDoctorName.Text = doctor.Name;
    txtDoctorPhoneNumber.Text = doctor.PhoneNumber;
    txtDoctorYderNr.Text = doctor.YderNr;
}

如果您有三个具有以下名称的文本框控件,这将有效:txtDoctorNametxtDoctorPhoneNumbertxtDoctorYderNr.

           `laegeInfo laege9 = new laegeInfo()` 
        {
            yderNr = 09123,
            navn = "Mille Andersen",
            CVR = 05232,
            adresse = "Parkvej 90, Sorø",
            telefon = 22996124,
            email = "MAplo@.dgm",
            kommune = 4180,

        };
        laegeInfo laege10 = new laegeInfo()
        {

            yderNr = 10102,
            navn = "Bent Justesen",
            CVR = 00632,
            adresse = "Asgers park 76, Solrød",
            telefon = 99885034,
            email = "BJplo@.dgm",
            kommune = 2680,

        };
        List<laegeInfo> laegers = new List<laegeInfo>(10);
            laegers.Add(laege1);
            laegers.Add(laege2);
            laegers.Add(laege3);
            laegers.Add(laege4);
            laegers.Add(laege5);
            laegers.Add(laege6);
            laegers.Add(laege7);
            laegers.Add(laege8);
            laegers.Add(laege9);
            laegers.Add(laege10);

            var UserInput = int.Parse(txtPraksisoplysningerYderNr.Text);
            var laege = laegers.SingleOrDefault(L => L.yderNr == UserInput);
            if (laege != null)

                foreach (laegeInfo L in laegers)
            {
                txtLaegensNavn.Text = L.navn;

                txtCVR.Text = L.CVR.ToString();

                txtLaegensAdresse.Text = L.adresse;

                txtlaegenstlfNR.Text = L.telefon.ToString();

                txtLaegensEmail.Text = L.email;

                txtLaegensKommune.Text = L.kommune.ToString();