Hi,
There's not a class like that in C#. But you can create a class like that yourself:
public class MemberBindingDictionary<T>:Dictionary<object, T>
{
Func<T,object> _binding = null;
public MemberBindingDictionary(Func<T,object> binding)
{
_binding = binding;
}
public void Add(T value)
{
this.Add(_binding(value), value);
}
}
I don't use a
string
as a parameter in the constructor, but a
Func
. Now, you can use this class, and bind the value to a key using a lambda expression:
MyClass a;
var data = new MemberBindingDictionary<MyClass>(x => x.Name);
data.Add(a);
if(data.ContainsKey(a.Name))
{
...
}
So, don't write
"Name"
, but write
x => x.Name
. This is a
lambda expression[
^]
Hope this helps.
[Edit]Formatting problems fixed[/Edit]