```
public class Table<T> where T:SomeClassWithIntegerID
{
    private Dictionary<int, T> map = new Dictionary<int, T>();

    public bool isInMemory(int id)
    {
        if (map.ContainsKey(id))
            return true;
        return false;
    }

    public T setIt(T obj)
    {
        map[obj.id] = obj;
    }

    public T getIt(int id)
    {
        return map[id];
    }
}

```

Example:

```
private static Table<User> table = new Table<User>;

class User : SomeClassWithIntegerID
{
    public string name { get; set; }
    public string password { get; set; }
}

class SomeClassWithIntegerID
{
    public int id { get; set; }
}

```

I can now check if the `Table` holds a user with a certain ID, because I use that as the key, but there is now no way for me to check if the `Table` holds a `User` with the `name` Bob or whatever. I want to be able to do something like `table.isInMemory(name, "bob")` but how is that possible with a generic type?

I need to create a function that allows the end user to specify the field and expected value of said field, after which Table will go over all objects of that class, stored in the Dictionary, to see if one has the field that matches that value.

Is this possible at all?