I have List<T> data and Predicate<T> condition.
What way should I use to clear data depending on condition result?
-
Option 1:
var del = data.Where(i => condition); data.RemoveAll(i => del.Contains(i)); -
Option 2:
var del = data.Where(i => condition); for (int i = 0; i < del.Count; i++) data.Remove(del[i]); -
Option 3:
var del = data.Where(i => condition); foreach (var i in del) data.Remove(i); -
Option 4:
data = data.Where(i => !condition); -
Any other?
How about:
Note that your fourth option won’t work without a call to
ToList().