使用foreach语句

时间:2012-12-06 21:49:35

标签: c#

我试图看看是否可以使用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");
        }
    }

4 个答案:

答案 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)
    {...