比较2个具有null,empty和空白值的字符串

时间:2018-10-25 17:10:21

标签: c# string string-comparison

我能解释问题的最好方法是使用2数据库。第一个数据库保存所有实时数据。第二个数据库保存我们定期更新的数据。我需要确定是否需要在第二个数据库中更新值。假设一个名为“职业”的字段。给出一些方案:

DB1的值为null,DB 2的值为null,不更新。
DB1的值为空,DB2的值为空,没有更新。
DB1具有空值,DB2具有空值,没有更新。
DB1具有空值,DB2具有空值,没有更新。
DB1有一个值,DB2有空,空值或任何其他值,更新。
DB1具有一个空,空白的空格,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),但由于空格和空字符串是我看待它们的2个不同值,因此我不认为它们可以处理上述情况。也许我是错的,这就是这篇文章的目的,以了解是否有更好的方法。

1 个答案:

答案 0 :(得分:4)

这适合您的需求吗?

return ((db1.Occupation?.Trim() + "") == (db2.Occupation?.Trim() + ""));
  • ?保护空引用异常
  • .Trim()清除白色 空格
  • + ""将所有null转换为空