none
搜尋陣列中的字串並判斷是否存在 RRS feed

  • 問題

  • 想做一個如標題的東西

    輸入文字之後按下按鈕
    判段所輸入的文字是否在陣列中
    (大小寫要符合)

    string a = textBox1.Text;
                int index = Array.IndexOf(urlstring,a);
                if (index = a)
                    MessageBox.Show("存在");
                else
                    MessageBox.Show("不存在");

    出現錯誤   無法將型別 'string' 隱含轉換為 'int'  
    由於是個新手希望大大們能夠指導我
    2009年11月4日 下午 11:39

解答

  •             string a = textBox1.Text;
                int index = Array.IndexOf(urlstring, a);
                if (index >= 0)
                    MessageBox.Show("存在");
                else
                    MessageBox.Show("不存在");


    Array.IndexOf 方法 (Array, Object)
    http://msdn.microsoft.com/zh-tw/library/7eddebat(VS.80).aspx

    在 MSDN 的備註有以下說明
    因為大多數陣列都將以零為下限,所以當找不到 value 時,這個方法通常會傳回 -1。在陣列下限等於 Int32.MinValue,而又找不到 value 的罕見情況下,這個方法會傳回 Int32.MaxValue,它是 System.Int32.MinValue - 1



    Windows 7 多點觸控設計大賽
    2009年11月5日 上午 02:00
    版主

所有回覆

  • hi
    string a = textBox1.Text;
                int index = Array.IndexOf(urlstring,a);
                if (urlstring[index] == a)
                    MessageBox.Show("存在");
                else
                    MessageBox.Show("不存在");

    sorry~右手滑了
    感謝蹂躪大~~^^

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已提議為解答 冰糖旋風 2009年11月5日 上午 01:28
    • 已編輯 ricoisme 2009年11月5日 上午 06:28
    2009年11月5日 上午 12:32
  • 提供另外一個選擇供您參考,程式碼如下:

                string[] source = { "a", "b", "c" };
                string s = TextBox1.Text;
                var result = source.Where(c => c.Contains(s));
                if (result.Any())
                    Response.Write("存在");
                else
                    Response.Write("不存在");

    開發環境:
    OS:Windows 7 Enterprise
    IDE:VS 2008 Profession SP1
    .NET Framework: 3.5 SP1
    DBMS:SQL Server 2008 SP1
    2009年11月5日 上午 01:57
  •             string a = textBox1.Text;
                int index = Array.IndexOf(urlstring, a);
                if (index >= 0)
                    MessageBox.Show("存在");
                else
                    MessageBox.Show("不存在");


    Array.IndexOf 方法 (Array, Object)
    http://msdn.microsoft.com/zh-tw/library/7eddebat(VS.80).aspx

    在 MSDN 的備註有以下說明
    因為大多數陣列都將以零為下限,所以當找不到 value 時,這個方法通常會傳回 -1。在陣列下限等於 Int32.MinValue,而又找不到 value 的罕見情況下,這個方法會傳回 Int32.MaxValue,它是 System.Int32.MinValue - 1



    Windows 7 多點觸控設計大賽
    2009年11月5日 上午 02:00
    版主
  • string[] source = { "a", "b", "c" };
                string s = TextBox1.Text;
                if (s.Contains(s));)
                    Response.Write("存在");
                else
                    Response.Write("不存在");
    2009年11月5日 上午 02:50
  • Hi,

    修正一下看起來有問題的地方

    Rico的
     if (urlstring[index] == a)

    好說的
    if (source.Contains(s))

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年11月5日 上午 03:38
  • ricoisme 的解答應該改成

                string a = textBox1.Text;
                int index = Array.IndexOf(urlstring,a);
                if (urlstring[index] == a)
                    MessageBox.Show("存在");
                else
                    MessageBox.Show("不存在");
    2009年11月5日 上午 06:18
  • string a = textBox1.Text;
                int index = Array.IndexOf(urlstring,a);
                if (urlstring[index] == a)
                    MessageBox.Show("存在");
                else
                    MessageBox.Show("不存在");

    這段程式碼沒有錯

    但是為什麼開啟程式按下按鈕後

    出現錯誤

    顯示:索引在陣列的界限之外
    2009年11月5日 上午 06:30
  • Hi,

     請參考小歐的解答
    會有idx == -1的狀況

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年11月5日 上午 06:33
  • 如果 array 大小=5
    只要index>=5 or -1
    就會顯示:索引在陣列的界限之外
    所以確認你的urlstring大小


    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年11月5日 上午 06:39