2010-12-24 16 views
2

ich einen Text in RichTextBox1 haben, möchte ich jedes 3 Zeichen der Zeichenfolge extrahieren und so weiter, wie:Extract char durch Sequenz in einem String vb 2010

richtextbox1.text = "It's Chrismas time" 

Ergebnis, Sequenz von 3 von rechts nach Links: "Isrmte"
Ergebnis, Sequenz von 3 von links nach rechts: "etmrsI"

Wie kann ich das machen?

-Code kann in C# 2010 sein ich vb.net übersetzen 2010.

Antwort

3

Wie wäre es richtextbox1.text.Where((c, i) => i % 3 == 0)?
Oder RTL: richtextbox1.text.Reverse().Where((c, i) => i % 3 == 0)
In VB: richtextbox1.text.Where(Function(c, i) i Mod 3 = 0)

jedoch Ihr Beispiel zeigt nicht jede dritte Zeichen zu extrahieren - Ihr Beispiel ignoriert Leerzeichen, die Sie auf diese Weise tun könnte:

text.Where(Function(c) Not Char.IsWhiteSpace(c)).Where(Function(c, i) i Mod 3 = 0) 

zu nehmen der Text und in ein anderes Textfeld setzen, könnten Sie dies tun:

textbox2.text = String.Join("", textbox1.text 
       .Where(Function(c) Not Char.IsWhiteSpace(c)) 
       .Where(Function(c, i) i Mod 3 = 0)) 

Hier ist mein Test-Code direkt von VS 2010 kopiert:

Dim text = "It's Chrismas time" 
    Console.WriteLine(String.Join("", 
        text.Where(Function(c) Not Char.IsWhiteSpace(c)) _ 
         .Where(Function(c, i) i Mod 3 = 0))) 
+0

Nicht verstehen, wie dieses Stück Code-Typ verwenden. – Michael

+0

Bitte sagen Sie, wie Sie die Sequenz verwenden möchten, und ich kann Ihnen zeigen, wie es geht. – Gabe

+0

Ok Entschuldigung für mein schlechtes Englisch, aber ich werde versuchen, Sie zu erklären, ich habe eine Richtextbox, mit einem langen Text drin, ich möchte alle 3 Zeichen bis zum Ende des Dokuments nehmen, wie in meinem Beispiel und das Ergebnis in ein anderes setzen Textfeld. – Michael