I'll just attach a picture for reference on this one. I am stumped. In the debugger, the values definitely equal each other, but Find<T>
is still returning null and Exists<T>
is still returning false. For reference: UserRepository
implements IEnumerable<T>
where T
is DomainUser
.
The problem is that the type of CommandArgument
is object
, so it's performing a reference identity check. (I'm surprised this isn't giving you a compile-time warning.)
You could either cast CommandArgument
to string
, or use Equals
:
u => u.Username == (string) args.CommandArgument
or
u => Equals(u.Username, args.CommandArgument)
(Using the static Equals
method this way means it'll work even for users with a null
username, unlike u.Username.Equals(args.CommandArgument)
.)
I wouldn't convert the sequence to a list though - I'd just use LINQ instead:
DomainUser toRemove =
repo.FirstOrDefault(u => u.Username == (string) args.CommandArgument);
Have you tried :
u.Username.Equals(args.CommandArgument)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With