将 2 个字符串与空值、空值和空白值进行比较

Comparing 2 strings with null, empty and whitespace values

我能解释问题的最好方法是使用 2 个数据库。第一个数据库保存所有实时数据。第二个数据库保存我们定期更新的数据。我需要确定是否需要在第二个数据库中更新某个值。让我们说一个叫做职业的领域。给出几个场景:

DB1 的值为空,DB 2 的值为空,没有更新。
DB1 有空值,DB2 有空值,没有更新。
DB1 有空值,DB2 有空值,没有更新。
DB1 有空值,DB2 有空值,没有更新。
DB1 有值,DB2 有空值、null 或任何其他值,更新。
DB1 有一个 null,空,白色space,DB2 有一个实际值,update.

为了实现我写了一个这样的方法:

if (string.IsNullOrWhiteSpace(db1.Occupation)) db1.Occupation = string.Empty;
if (string.IsNullOrWhiteSpace(db2.Occupation)) db2.Occupation = string.Empty;
if (!db1.Occupation.Equals(db2.Occupation)) return false;
return true;

我的问题是是否有内置的方法来实现我上面的场景?我正在研究 if (String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)object.Equals(str1, str2) 但我认为它们无法处理上述情况,因为白色 space 和空字符串在我看来是两个不同的值。也许我错了,这就是这个post,看看有没有更好的方法。

这符合您的需求吗?

return ((db1.Occupation?.Trim() + "") == (db2.Occupation?.Trim() + ""));
  • ? 保护空引用异常
  • .Trim()清理白色 space
  • + "" 将任何 null 转换为空