我试图看看是否可以使用foreach语句尝试获取我搜索整个数组的程序,因为我没有预设的大小,我不想猜测它的游戏。我尝试了这段代码,但它告诉我,“不能隐式地将类型'字符串'转换为'int',它指向'if(query == search [k])
这一行我不确定它到底在说什么,但有人可以帮忙吗?谢谢。
private void findLast_Click(object sender, EventArgs e)
{
query = textBox2.Text;
search = File.ReadAllText(fileName).Split(new string[] { "\n", "\r\n", ":" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string k in search)
{
if (query == search[k])
{
MessageBox.Show("Match");
}
else
MessageBox.Show("No Match");
}
}
答案 0 :(得分:3)
在每个循环中你已经有了这个对象。
private void findLast_Click(object sender, EventArgs e)
{
query = textBox2.Text;
search = File.ReadAllText(fileName).Split(new string[] { "\n", "\r\n", ":" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string k in search)
{
if (query == k)
{
MessageBox.Show("Match");
}
else
MessageBox.Show("No Match");
}
}
答案 1 :(得分:2)
k
是一个字符串 - 因此您不能将其用作数组的索引。只需尝试query == k
。
答案 2 :(得分:1)
将测试更改为
if (query == k)
您使用的语法是简单的for循环
for(int k; k < search.Length; k++)
{
if (query == search[k])
.....
}
答案 3 :(得分:1)
C#不是JavaScript ... foreach
给出了元素的值,而不是索引:
foreach (string currentItem in search)
{
if (query == currentItem)
{...