gpt4 book ai didi

C#:在键是对象的地方使用 ContainsKey

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:02 25 4
gpt4 key购买 nike

好的,我需要一点帮助。我有一本通用词典“cashdata”。这个字典的键是对象(查询对象,我定义的一个类)。查询对象有“Terms”字段,它是一个字符串列表,和一个“Operator”字段,它是一个枚举(“All”或“Any”)。

cashdata.ContainsKey(a_query_object);

并根据 a_query_object 和字典中的对象在术语和运算符方面是否相同,让它产生 true 或 false。做这个的最好方式是什么?可能是哈希码?我会很感激一个例子,提前致谢。

编辑:cashdata 字典是这样定义的

Dictionary<Query,List<string> > cashData = new Dictionary<Query,List<string>>();

最佳答案

让你的对象实现IEquatable Interface以及重写 Object.EqualsGetHashCode,如 MSDN 的备注部分所述

If you implement IEquatable, you should also override the base class implementations of Object.Equals(Object) and GetHashCode so that their behavior is consistent with that of the IEquatable.Equals method. If you do override Object.Equals(Object), your overridden implementation is also called in calls to the static Equals(System.Object, System.Object) method on your class. In addition, you should overload the op_Equality and op_Inequality operators. This ensures that all tests for equality return consistent results.

关于C#:在键是对象的地方使用 ContainsKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797819/

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