簡體   English   中英

如何在C#中收集文本框中的所有列表框項目

[英]How To Collect all listbox items in a textbox in c#

我有一個列表框,其中以example@gmail.com的格式收集電子郵件。

我想通過單擊按鈕在文本框中傳輸這些內容。

我想要沒有“ @”的項目,並且所有項目都被“#”分割。

例如...我有a@mail.com b@mail.com c@mail.com等等

現在,用一個按鈕單擊,所有項目都必須在文本框中,如a#b#c#.....等等,/// ----------------------- -------------------------------------------------- ----------我知道如何將所有項目直接轉移到文本框。

for(int i = 0; i<listBox1.Items.Count; i++)
{
if((i +1) < listBox1.Items.Count)
textBox1.Text += listBox1.Items[i] + ", ";
else
textBox1.Text += listBox1.Items[i];
}

// ------------------------------------------------ ----------------------------------如何獲取格式為example@mail.com的所有項目沒有@且每個項目均以#分隔的文本框。

謝謝

 foreach (string item in listBox1.Items)
      textBox1.Text += item.Contains("@") ? string.Format("{0}#", item.Split('@')[0]) : string.Empty;

像這樣?

 public MainWindow()
    {
        InitializeComponent();
        lbSource.Items.Add("example1@yahoo.com");
        lbSource.Items.Add("example2@gmail.com");
        lbSource.Items.Add("example3@hotmail.com");
        lbSource.Items.Add("example4@live.com");


    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        txtShow.Text = "";
        foreach (string item in lbSource.Items)
        {
            string tmp = item.Substring(0, item.IndexOf('@'));
            txtShow.Text += tmp + "#";
        }
    }

嘗試

textBox1.Text="";

for(int i = 0; i<listBox1.Items.Count; i++)
{

textBox1.Text += listBox1.Items[i].toString().Split(new Char [] {'@'})[0] + "#";

}

這里

listBox1.Items[i].toString().Split(new Char [] {'@'})[0]將在左側只返回字符串@a@mail.coma

因此輸出將如您預期的那樣,即

示例a#b#c#

使用如下的IndexOf方法

        string output = string.Empty;
        foreach (string email in listBox1.Items)
        {
            int atIndex = email.IndexOf('@');
            output = output + email.Remove(atIndex) + "#";

        }
       textBox1.Text = output;

暫無
暫無

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

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