簡體   English   中英

將文本框字符串拆分為數組並按數組索引C#在標簽中顯示

[英]Splitting Textbox String to Array and Displaying in Labels by Array Index C#

我只能參加入門編程課的作業,並且無法超出老師的建議來生成任何工作代碼。

分配:用戶將輸入全名,並用空格分隔。 按下btnGetName時,程序將分析文本框並提取名字,並將其放在名字標簽中,將中間名放在中間名標簽中,最后將姓氏放入姓氏標簽中(假設它們都存在) 。

如果僅輸入一個名字(Smith),則假定它是姓氏,並將名字和中間名留為空白

如果輸入了兩個條目(喬·史密斯),則假定它是第一個和最后一個。

如果文本框中有三個條目,則假定其中包括名字,中間名和姓氏。

如果沒有輸入,則將所有標簽留空。

如果輸入了三個以上的錯誤消息,請擦拭文本框,然后將光標放回文本框中。

使用if / then或try / catch防止錯誤發生(如有必要)。

使表格看起來有些專業。 暗示:

將文本框拆分為一個數組。 使用arrayname.count可以確定創建了多少個條目(數組中有多少個項目)。 使用if / then / else決定如何填充名稱標簽。 在您的按鈕單擊事件處理程序中,這應該少於7行代碼。

例:

           if (myarray.count==1)
            {
                lblLast.text=myarray[0].ToString();
                //I would wipe out the contents in the other labels here
            }
           else if(myarray.count==2)
            {

                ...

            }

我被困了幾個小時-可能是因為我對其他東西感到沮喪,但我無法在標簽上顯示任何內容。 在一次演講中,教授分享了Liststring ...作為他將字符串分割成數組所需的格式。 這就是我現在在btnGetName下擁有的內容:

    private void btnGetName_Click(object sender, EventArgs e)
    {
        string txtFullName = "";
        List<string> namesArray = txtFullName.Split(' ').ToList();
        namesArray.Count();

        foreach (string name in namesArray)
        {
            if (namesArray.Count == 1)
            {
                lblLast.Text = namesArray[0].ToString();
            }
            else if (namesArray.Count == 2)
            {
                lblFirst.Text = namesArray[0].ToString();
                lblLast.Text = namesArray[1].ToString();
            }
            else if (namesArray.Count == 3)
            {
                lblFirst.Text = namesArray[0].ToString();
                lblMiddle.Text = namesArray[1].ToString();
                lblLast.Text = namesArray[2].ToString();
            }
        }

通過查看您的示例,您的List<string> namesArray為空。 您正在獲取一個空字符串並將其拆分,這只會給您一個空列表。

您應該改為這樣,其中inputText是用戶將輸入名稱的編輯文本元素:

string txtFullName = inputText.Text;
List<string> namesArray = txtFullName.Split(' ').ToList();

我還要補充一點, foreach循環是多余的; 您實際上是一遍又一遍地分配3個標簽,直到到達循環的結尾。 刪除foreach塊,但保留其內容。

再進行一次編輯,另一個巨大的冗余是在namesArray每個項目上namesArray使用.ToString() ,根據定義,這是一個字符串列表。 您可以安全地刪除這些多余的呼叫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM