我有一个列表框,其中收集的电子邮件格式为example@gmail.com。
我想通过点击按钮在文本框中传输这些内容。
我想要没有“@”的项目和所有用“#”分割的项目。
例如......我有a@mail.com b@mail.com c@mail.com等等
现在点击一个按钮,所有项目必须位于文本框中,如#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的项目,并且每个项目用#分隔。
谢谢
答案 0 :(得分:3)
foreach (string item in listBox1.Items)
textBox1.Text += item.Contains("@") ? string.Format("{0}#", item.Split('@')[0]) : string.Empty;
答案 1 :(得分:1)
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 + "#";
}
}
答案 2 :(得分:0)
试
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#
因此输出将如您所愿,即
示例{{1}}
答案 3 :(得分:0)
使用下面的IndexOf方法
string output = string.Empty;
foreach (string email in listBox1.Items)
{
int atIndex = email.IndexOf('@');
output = output + email.Remove(atIndex) + "#";
}
textBox1.Text = output;