[英]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.com
即a
因此輸出將如您預期的那樣,即
示例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.