2010-01-28 3 views
1

VB에서 문자열을 가져 와서 분할해야합니다. 또한 반환 된 두 값을 살펴보고 "domain1.com"이 포함 된 값을 반환해야합니다. 파이프 라인이 구분 기호입니다. 그나마 그 다음에 할 일을 알고문자열 분할 및 검색 VB.NET

txtEmailFrom.Text = "[email protected]|[email protected]" 
Dim brokened() As String 
brokened = Split(txtEmailFrom.Text, "|") 

...

+0

우유없는 쓰기, VB.net에서 문자열을 분할, 검색 및 구문 분석 할 수있는 다양한 방법을 보여줍니다. http://msdn.microsoft.com/en-us/library/hzcd8ze0%28VS.80%29.aspx –

답변

0
txtEmailFrom.Text = "[email protected]|[email protected]" 
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

편집에 변환의 아이디어를 줄 것이다 : 당연히,이 라인 if emailSplit(1) = ... 전에 배열 범위에 대한 검사를 추가하는 것이 좋습니다 것입니다. 당신은 LINQ

txtEmailFrom.Text = "[email protected]|[email protected]" 
Dim result = txtEmailFrom.Text.Split(CChar("|")) _ 
       .Where(Function(d) d.Contains("domain1.com")).FirstOrDefault 
0

(내 대답을 쓰기 중단되었다, 그래서 나는 마무리하기로 결정 해요!) 당신이 시도 할 수

:

Module Module1 

    Sub Main() 

     Dim email As String = "[email protected]|[email protected]" 

     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.

0
Dim brokened() As String = txtEmailFrom.Text.Split("|"c) 

Dim returnValue as String 

For each item as String in brokened 
    If item.Contains("domain1.com") Then 
    returnValue = item 
    End If 
Next 
0

를 사용할 수 있는지

+0

firstOrDefault will 배열 또는 ienumeration을 반환하지 마십시오 – Fredou

+0

@ Fredou - 귀하의 권리, 나는 요구 사항을 잘못 이해했습니다. 그에 따라 코드를 변경했습니다. –

2
For Each email In brokened 
    If email.Contains("domain1.com") Then 
     Return email 
    End If 
Next 
+1

LINQ를위한 시간과 장소가 있습니다. 나는 이것들 중 하나가 아니라고 말하고 싶습니다. 여러분이 좋아하는 오래된 FOR 루프가 여기에서 가장 잘 작동하고 다른 사람들이 더 쉽게 읽을 수 있습니다. –

0

내가 목록에 splited 이메일을 넣어 나는 C#에서 이것을 쓰는거야

모든 domain1.com을 찾기 위해 list.FindAll 방법을 사용하는 것, 내가 더 잘 알고 있어요 그것은하지만 vb.net

에 대해 동일해야합니다
List<string> emails = new List<string>(); 
emails.AddRange(txtEmailFrom.Text.Split("|".ToCharArray())); 

emails.FindAll(s=> {return s.Contains("domain1.com");}); 

그런 일 ...이 페이지를 볼 수도 있습니다 IDE

0
Dim test As String = "[email protected]|[email protected]" 
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