2014-12-27 13 views

risposta

9
string s = "This is string"; 
s = s.Remove(2, 1); 

uscita: Ths is string

1st parameter è la starting index da cui si desidera rimuovere il carattere e secondo parametro è la number of character che si desidera rimuovere

0

Puoi scrivere la tua estensione per questo utilizzando il Remove Metodo:

public static class MyStringExtensions 
{ 
    public static string RemoveAt(this string s, int index) 
    { 
     return s.Remove(index, 1); 
    } 
} 

utilizzo:

string s = "This is string"; 
s = s.RemoveAt(2); 
1

si potrebbe usare anche espressioni regolari.

Console.WriteLine(Regex.Replace("This is string", @"(?<=^.{2}).", "")); 

Questo rimuoverebbe il terzo carattere dall'inizio.

DEMO

+0

Una regex è eccessivo per questa situazione. –

+0

yep d'accordo regex è un overkill. Penso che l'op sta chiedendo delle possibilità. –

+1

... la cosa buona è che funziona per quasi tutti i linguaggi di programmazione che penso. Non lo sapevo così bello che hai postato anche questa possibilità. – t3chb0t

5

Come molti altri hanno detto, c'è un metodo Remove. Quello che gli altri post non hanno spiegato è che le stringhe in C# sono immutabili - non puoi cambiarle.

Quando si chiama Remove, in realtà viene restituita una nuova stringa ; non modifica la stringa esistente. Dovrai assicurarti di prendere l'output di Remove e assegnarlo a una variabile o restituirlo ... semplicemente chiamando Remove da solo non cambia la stringa.

Problemi correlati