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];
}
}
例子:
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; }
}
我现在可以检查是否Table
持有具有特定 ID 的用户,因为我使用它作为密钥,但现在我无法检查是否Table
持有Bob 或其他什么User
。name
我希望能够做类似的事情,table.isInMemory(name, "bob")
但是泛型类型怎么可能呢?
我需要创建一个函数,允许最终用户指定该字段的字段和预期值,之后 Table 将遍历该类的所有对象,存储在 Dictionary 中,以查看是否有与该值匹配的字段.
这可能吗?