Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串拆分&;搜索VB.NET_.net_Asp.net_Vb.net_String - Fatal编程技术网

字符串拆分&;搜索VB.NET

字符串拆分&;搜索VB.NET,.net,asp.net,vb.net,string,.net,Asp.net,Vb.net,String,需要在vb中获取一个字符串并拆分它。还需要查看两个返回值并返回包含“domain1.com”的值。管道是分隔符 txtEmailFrom.Text = "john@huno.com|james@domain1.com" Dim brokened() As String brokened = Split(txtEmailFrom.Text, "|") 不知道从这里到哪里去 txtEmailFrom.Text = "john@huno.com|james@domain1.com" Dim brok

需要在vb中获取一个字符串并拆分它。还需要查看两个返回值并返回包含“domain1.com”的值。管道是分隔符

txtEmailFrom.Text = "john@huno.com|james@domain1.com"
Dim brokened() As String
brokened = Split(txtEmailFrom.Text, "|")
不知道从这里到哪里去

txtEmailFrom.Text = "john@huno.com|james@domain1.com"
Dim brokened() As String
dim email as string
dim emailSplit() as string
brokened = Split(txtEmailFrom.Text, "|")

for email in brokened
   emailSplit = Split(email, "|")
   if emailSplit(1) = "domain1.com" then
      Console.WriteLine(email)
   end if
next
我在没有IDE的情况下写这篇文章&这可能是VB6风格。
希望它能让您了解如何转换到VB.net

编辑:当然,如果emailSplit(1)=……可以使用LINQ,那么最好在此行前面添加数组边界检查

 txtEmailFrom.Text = "john@huno.com|james@domain1.com"
 Dim result = txtEmailFrom.Text.Split(CChar("|")) _
              .Where(Function(d) d.Contains("domain1.com")).FirstOrDefault
(我写答案时被打断了,所以我决定完成!)

您可以尝试以下方法:

Module Module1

    Sub Main()

        Dim email As String = "john@huno.com|james@domain1.com"

        Dim brokened() As String
        brokened = Split(email, "|")

        Dim k As List(Of String) = (From j As String In brokened _
                                    Where j.Contains("domain1.com") _
                                    Select j).ToList()

        For Each u As String In k
            Console.WriteLine(u)
        Next


    End Sub

End Module
希望这有帮助。
Jas.

我会将拆分的电子邮件放入一个列表中,并使用list.FindAll方法查找所有domain1.com

我将用c#来写这篇文章,我对它比较熟悉,但是对于vb.net应该是一样的

List<string> emails = new List<string>();
emails.AddRange(txtEmailFrom.Text.Split("|".ToCharArray()));

emails.FindAll(s=> {return s.Contains("domain1.com");} );
列出电子邮件=新建列表();
emails.AddRange(txtEmailFrom.Text.Split(“|”。.ToCharArray());
emails.FindAll(s=>{returns.Contains(“domain1.com”);});

像这样的事。。。使用firstOrDefault写入witout IDE将不会返回数组或ienumeration@Fredou-你说得对,我误解了要求。已经相应地更改了代码。LINQ有一个时间和地点,我想说的是,这不是其中之一,像你这样的一个很好的for循环在这里工作得最好,可以更容易地被其他人阅读。你可能想看看这个页面,它向你展示了在VB.net中拆分、搜索和解析字符串的许多不同方法
Dim test As String = "john@huno.com|james@domain1.com"
Dim brokend() As String
brokend = test.Split(New String() {"|"}, StringSplitOptions.None)

For Each email As String In brokend
    If email.EndsWith("domain1.com") Then
        Return email;
    End If
Next
List<string> emails = new List<string>();
emails.AddRange(txtEmailFrom.Text.Split("|".ToCharArray()));

emails.FindAll(s=> {return s.Contains("domain1.com");} );
Dim test As String = "john@huno.com|james@domain1.com"
Dim brokend() As String
brokend = test.Split(New String() {"|"}, StringSplitOptions.None)

For Each email As String In brokend
    If email.EndsWith("domain1.com") Then
        Return email;
    End If
Next