gpt4 book ai didi

c# - 字典的多键查找

转载 作者:行者123 更新时间:2023-11-30 17:20:46 24 4
gpt4 key购买 nike

我正在解析一个文件,我想以一种可以使用两个键进行查找的方式将其存储在查找结构中。

我有一个 User Entityname, emailid , 类型无关紧要。

我想将其存储在 Dictionary<User, id> 中所以我可以通过查找用户来获取用户 ID。

我也想要相反的方式,即:Dictionary<Id, User>

我可以创建两个结构并进行查找。这很容易。我想用一个单一的结构来做。

我很好奇我是否可以用一个单一的结构来做到这一点

我在想我能做到:

Dictionary<User, User> , 然后实现 IEqualityComparer<User>

有更好的方法吗?

实现 IEqualityComparer 的最佳做法是什么?

最佳答案

无论您是否需要进行这种类型的映射,您都可以使用一个字典来处理您所要求的内容。这是一个粗略的示例:

var dict = new Dictionary<string, object>();
dict["ID_001"] = new User();
dict["USER_??"] = 001; // Need a unique user string to replace the "??"

当然,你可以随意组成你想要的字符串。而且,如果您想将函数包装在事物周围,则可以避免每次获取项目时都必须强制转换对象。 (静态方法可能更适合您。)

User GetUser(int id, Dictionary<string, object> dict) 
{
return (User)dict["ID_" + id];
}

关于c# - 字典的多键查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com