Andere Antworten haben erklärt, warum Ihr aktueller Code nicht funktioniert. Hier ist eine Erweiterung Methode, die es beheben würde:
// Must be in a static non-nested class
public static void ModifyEach<T>(this IList<T> source,
Func<T,T> projection)
{
for (int i = 0; i < source.Count; i++)
{
source[i] = projection(source[i]);
}
}
Dann wie folgt verwenden:
newsplit.ModifyEach(x => "WW");
, die mit jeder Implementierung von IList<T>
wie Arrays und List<T>
arbeiten. Wenn Sie es brauchen, um mit einer beliebigen IEnumerable<T>
zu arbeiten, dann haben Sie ein Problem, da die Sequenz selbst nicht veränderbar sein kann.
Mit Select()
ist ein funktioneller Ansatz natürlich, aber manchmal mutiert eine bestehende Sammlung ist Mühe wert ...
Ist ein String-Array oder in meinem Fall eine Liste IEnumerable wie ich glaube nicht, es ist? –
Jon
@Jon: Arrays und Liste alle unterstützen die IEnumerable Schnittstelle –
Ich glaube nicht, dass ein Select() ist, was Jon will, es klingt wie er das IEnumerable selbst ändern möchte. Wählen Sie wird nur geben Sie die Elemente, die bereits "WW" sind – AgileJon