digitalmars.D.learn - How to delete element from array container or dlist?
- Andrey Kabylin (2/5) Mar 18 2018
- Michael (2/7) Mar 18 2018 The remove function seems to expect an index, not an element.
- Michael (5/10) Mar 18 2018 So I guess you would want something like
- Andrey Kabylin (2/12) Mar 18 2018 Yes this works, thanks!
In DList we have method remove, but I can't understand how this method works, I want write somethink like this:void unsubscribe(EventsSubscriber subscriber) { subscribers.remove(subscriber); }
Mar 18 2018
On Sunday, 18 March 2018 at 14:58:52 UTC, Andrey Kabylin wrote:In DList we have method remove, but I can't understand how this method works, I want write somethink like this:The remove function seems to expect an index, not an element.void unsubscribe(EventsSubscriber subscriber) { subscribers.remove(subscriber); }
Mar 18 2018
On Sunday, 18 March 2018 at 14:58:52 UTC, Andrey Kabylin wrote:In DList we have method remove, but I can't understand how this method works, I want write somethink like this:So I guess you would want something like subscribers.remove!(a => a == subscriber)); which is the different definition of remove available here: https://dlang.org/phobos/std_algorithm_mutation.html#.remove.2void unsubscribe(EventsSubscriber subscriber) { subscribers.remove(subscriber); }
Mar 18 2018
On Sunday, 18 March 2018 at 15:32:47 UTC, Michael wrote:On Sunday, 18 March 2018 at 14:58:52 UTC, Andrey Kabylin wrote:Yes this works, thanks!In DList we have method remove, but I can't understand how this method works, I want write somethink like this:So I guess you would want something like subscribers.remove!(a => a == subscriber)); which is the different definition of remove available here: https://dlang.org/phobos/std_algorithm_mutation.html#.remove.2void unsubscribe(EventsSubscriber subscriber) { subscribers.remove(subscriber); }
Mar 18 2018
On Sunday, 18 March 2018 at 15:42:18 UTC, Andrey Kabylin wrote:On Sunday, 18 March 2018 at 15:32:47 UTC, Michael wrote:No problem, glad to help!On Sunday, 18 March 2018 at 14:58:52 UTC, Andrey Kabylin wrote:Yes this works, thanks!In DList we have method remove, but I can't understand how this method works, I want write somethink like this:So I guess you would want something like subscribers.remove!(a => a == subscriber)); which is the different definition of remove available here: https://dlang.org/phobos/std_algorithm_mutation.html#.remove.2void unsubscribe(EventsSubscriber subscriber) { subscribers.remove(subscriber); }
Mar 18 2018
On Sunday, 18 March 2018 at 16:14:06 UTC, Michael wrote:On Sunday, 18 March 2018 at 15:42:18 UTC, Andrey Kabylin wrote:Just an FYI: This didn't work as I expected -- the length of subscribers didn't change. What I needed here was subscribers = subscribers.remove!(a => a == subscriber)); Otherwise this sort of behaviour resulted: // code: struct A {int i;} A[] as = [A(1), A(2), A(3)]; writeln("as = ", as); writeln(remove!(a => a == A(2))(as)); writeln("as = ", as); writeln(remove!(a => a == A(3))(as)); writeln("as = ", as); // output: as = [A(1), A(2), A(3)] [A(1), A(3)] as = [A(1), A(3), A(3)] [A(1)] as = [A(1), A(3), A(3)]On Sunday, 18 March 2018 at 15:32:47 UTC, Michael wrote:No problem, glad to help!On Sunday, 18 March 2018 at 14:58:52 UTC, Andrey Kabylin wrote:Yes this works, thanks!In DList we have method remove, but I can't understand how this method works, I want write somethink like this:So I guess you would want something like subscribers.remove!(a => a == subscriber)); which is the different definition of remove available here: https://dlang.org/phobos/std_algorithm_mutation.html#.remove.2void unsubscribe(EventsSubscriber subscriber) { subscribers.remove(subscriber); }
Apr 25 2019