【发布时间】:2021-07-09 17:39:38
【问题描述】:
我有一个像这样的对象:
public class MyObject {
public string firstname { get; set; }
public string lastname { get; set; }
public int age { get; set; }
public string occupation { get; set; }
}
我正在尝试比较两个对象,但我希望所有字符串都忽略大小写。不幸的是,以下内容无法编译:
// Does NOT allow me to call using ignore case
if (myObject1.Equals(myObject2, StringComparison.OrdinalIgnoreCase)) {
Console.WriteLine("Match!");
}
有没有办法在不手动检查对象中的每个属性的情况下完成此操作?
【问题讨论】:
-
写你自己的
.Equals覆盖 -
这能回答你的问题吗? Comparing object properties in c#,特别是this 的答案,涉及覆盖@Charlieface 提到的
.Equals。 -
获得“免费”值比较的唯一方法是使用新的record type,但即便如此,您也必须覆盖它以忽略大小写。
标签: c# object comparison ignore-case