错误运算符 == 无法应用搜索数组

本文关键字:搜索 数组 应用 运算符 错误 | 更新日期: 2023-09-27 17:51:04

这可能会令人困惑或混乱,但我需要程序方面的帮助这是我的程序:

public partial class Form1 : Form
{
    int itemCountInteger;
    public struct Patient
    {
        public string patientidstring;
        public string firstNameString;
        public string lastNameString;

    }
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {

    }

    public class Patientn
    {
        private int patientId;
        public string firstName;
        private string lastName;
        public Patientn()
        {
            patientId = 0;
            firstName = "";
            lastName = "";
        }
        public Patientn(int idValue, string firstNameVal, string lastNameVal)
        {
            patientId = idValue;
            firstName = firstNameVal;
            lastName = lastNameVal;
        }
    }
我希望能够

使用患者类而不是结构来添加患者,并且对于下面的搜索代码,我收到错误"无法应用运算符 =="我希望能够搜索数组,如果文本框中的文本与数组中的名称匹配,如果是这样,则显示姓氏帮助?

    //Array
    Patient[] patientInfo = new Patient[10];
    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            foreach (Patient patientinfoIndex in patientInfo)
            patientInfo[itemCountInteger].patientidstring = textBox1.Text;
            patientInfo[itemCountInteger].firstNameString = textBox2.Text;
            patientInfo[itemCountInteger].lastNameString = textBox3.Text;
            string names = patientInfo[itemCountInteger].firstNameString + " " + patientInfo[itemCountInteger].lastNameString;
            listBox1.Items.Add(names);
            itemCountInteger++;
            listBox1.SelectedItem = names;
        }
        catch
        {
            MessageBox.Show("Contacts are limited to 20. Please delete some contacts prior to adding more.");
        }
    }

    //Search Button search a patients name and display his surname in the label if patient is found  display his surname
    private void button2_Click(object sender, EventArgs e)
    {
        int intTest = 0;
        for (int x = 0; x < patientInfo.Length; x++)
        {
            if (textBox4.Text == patientInfo[x])
            {
                label6.Text =("surname");
                intTest = 1;
            }
        }
        if (intTest == 0)
        {
            label6.Text = ("not found");
        }
    }

我是所有这些的新手,如果您可以帮助我,请提前询问和感谢。

错误运算符 == 无法应用搜索数组

由于这一行,您会收到错误; textBox4.Text == patientInfo[x] .这里有一些问题,但首先,textBox4.Text是一个字符串,你试图与编译器说没有为此定义==运算符Patient进行相等比较。您可以重载 == 运算符以进行Patient但这只允许您将 Patient 类型的一个实例与另一个实例进行比较,您将永远无法将Patientstring进行比较,除非您将两者转换为类型 object在这种情况下,它只会进行引用比较(不是您想要的(。

我不确定您要在此处使用Patient中的哪个属性,但我知道您需要textBox4.TextPatient类中的一个字符串进行比较。 这样的东西会起作用; (textBox4.Text == patientInfo[x].lastName)

System.String(textBox4.Text返回的类型(与Patientn实例进行比较是没有意义的。您可能打算将TextpatientInfo[x].lastNameString进行比较.

你不能做

textBox4.Text == patientInfo[x]

patientInfo包含Patience的实例,textBox4.Text是一个string。这两者之间没有可能的比较,这就是您出现错误的原因。

你可能正在尝试做这样的事情

textBox4.Text == patientInfo[x].patientidstring