Just nu i M3-nätverket
Gå till innehåll

Problem med string[] ---> replace ----> string[]


kikotte

Rekommendera Poster

Tja,

 

 

Det som jag försöker göra är att jag har en string[] och då vill jag replace visa saker i den och sen göra om den till string[] igen.

 

 

Tex

string[] arr2 = { "one", "two", "three" };

Och då säger vi att jag vill replace "two" till "two2" så att det blir så här igen.

string[] arr2 = { "one", "two2", "three" };

Jag kan inte använda mig av arr2[1] och sen ändra utan måste ha någon annan lösning för att fixa det på.

 

Utan att den måste söka just efter "two" och sen ändra det till "two2" och sen göra den till en string[] igen.

Länk till kommentar
Dela på andra webbplatser

Man kan göra inte detta utan att loopa genom arrayen. Genom Select görs detta dock smidigt.

string[] items = {"one","two","three"};
string[] items2 = items.Select(x => x.Replace("two", "two2")).ToArray();

Förslagsvis skapar du en Extension-metod som du kan komma åt överallt

public static class EnumerableExtensions
    {
        public static string[] Replace(this string[] items, string replaceThis, string replaceTo)
        {
            return items.Select(x => x.Replace(replaceThis, replaceTo)).ToArray();
        }
    }
}

Då kan du anropa metoden så här:

string[] items = { "one", "two", "three" };
items = items.Replace("two","two2");
//items = { "one", "two2", "three" };
Länk till kommentar
Dela på andra webbplatser

Linq kan lösa det åt dig. Just den här lösningen är kanske lite oflexibel, men det går att göra smartare om man vill.

string[] items = new [] { "one", "two", "three" };
items = items.Select (item => item == "two" ? "two2" : item).ToArray();
Länk till kommentar
Dela på andra webbplatser

 

Linq kan lösa det åt dig. Just den här lösningen är kanske lite oflexibel, men det går att göra smartare om man vill.

string[] items = new [] { "one", "two", "three" };
items = items.Select (item => item == "two" ? "two2" : item).ToArray();

Fick det att funka med den här koden som jag gjorde.

List<String> bra = new List<String>();
            string[] lines = File.ReadAllLines(path + "//test.txt");
            foreach (string line in lines)
            {
                string v = line.Replace("mat", "pengar")
                .Replace("cigg", "skit")
                .Replace("hej", "hi")
                .Replace("spel", "game")
                bra.Add(v);
            }
            File.WriteAllLines(path + "//test.txt", bra);

Orden är ett tex.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...