2016-07-13 9 views
1

Wie Wort in String-Array entfernenWie Wort in String-Array entfernen

var array= new string [] 
       {"windows!!1!!","dual+sim!!3!!","32+gb!!2!!","Intel+i5!!2!!"}; 

Ausgangsarray

var Output-array= new string [] 
        {"windows","dual sim","32 gb","Intel i5"}; 

Wie wie dies in Zeile Code in C# tun kann

+0

@MaciejLos: keine Ahnung, wie –

Antwort

5

Unter der Annahme, Ihr Muster ist immer !![one digit]!!

Regex sollte der einfachste Weg sein, um dies zu lösen. Und eine Replace("+", " ") ersetzen + Zeichen mit einem Leerzeichen.

string[] array = new string[] { "windows!!1!!", "dual+sim!!3!!", "32+gb!!2!!", "Intel+i5!!2!!" }; 
string[] result = array.Select(x => System.Text.RegularExpressions.Regex.Replace(x, @"!!\d!!", "").Replace("+", " ")).ToArray(); 
+0

es besser zu machen, das Muster mit 'ersetzen @„ !! * !!“' nette Antwort obwohl – Sherlock

+0

ja, aber Sie sollten eine neue Frage für die fragen, die nichts um mit der ersten Frage zu tun – fubo

+0

Bitte antworten Sie Kumpel :( –

0

Während kein einziger Liner. Sie müssen RegEx und eine Erweiterungsmethode, die ohnehin in Ihrem Toolkit enthalten sein sollte, nicht verstehen. Nur Annahme ist ein "!!" als Terminator für die Zeichenfolge, die Sie extrahieren möchten.

/// <summary> 
/// Get string value before [first] a. 
/// </summary> 
public static string Before(this string value, string a) 
{ 
    int posA = value.IndexOf(a); 
    if (posA == -1) 
    { 
     return ""; 
    } 
    return value.Substring(0, posA); 
} 

var myList = new List<string>(); 
foreach var element in array 
{ 
    myList.Add(element.Before("!!")); 
} 

var outPutArray = myList.ToArray();