错误运算符 == 无法应用搜索数组
本文关键字:搜索 数组 应用 运算符 错误 | 更新日期: 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
类型的一个实例与另一个实例进行比较,您将永远无法将Patient
与string
进行比较,除非您将两者转换为类型 object
在这种情况下,它只会进行引用比较(不是您想要的(。
我不确定您要在此处使用Patient
中的哪个属性,但我知道您需要textBox4.Text
与Patient
类中的一个字符串进行比较。 这样的东西会起作用; (textBox4.Text == patientInfo[x].lastName)
将System.String
(textBox4.Text
返回的类型(与Patientn
实例进行比较是没有意义的。您可能打算将Text
与patientInfo[x].lastNameString
进行比较.
你不能做
textBox4.Text == patientInfo[x]
patientInfo
包含Patience
的实例,textBox4.Text
是一个string
。这两者之间没有可能的比较,这就是您出现错误的原因。
你可能正在尝试做这样的事情
textBox4.Text == patientInfo[x].patientidstring