【发布时间】:2021-06-21 06:16:47
【问题描述】:
public class Potato
{
int SomeID { get; set; }
DataTable Potable { get; set; }
[Key]
string PotatoKey { get; set; }
object GrimReaper { get; set; }
}
当比较 2 个土豆时,有一个 [Key] 属性是否告诉 C# 为了进行比较只需要比较 PotatoKey?还是我还需要明确告诉比较 PotatoKeys?
【问题讨论】:
-
如果您的意思类似于
potatoA < potatoB,那么您需要实现IComparable<Potato>,然后您可以调用potatoA.CompareTo(potatoB)。或者,您可以在类中重载比较运算符(<、<=、>和>=),然后使用potatoA < potatoB。 -
“比较”是什么意思?应用
==运算符? -
不幸的是,如果您想添加自定义等号或 == != ,... 运算符,您必须完全手动完成。 C# 方面不支持。我找到的最好的是“Fody.Equals”,它可以在这里帮助你github.com/Fody/Equals。也许记录可以帮助你作为有值类型比较,但它们比较所有属性,这也是不可更改的(很容易)
标签: c# .net attributes comparison primary-key