C# 比较两个字符串的空值、空值和空白值

C# 比较两个字符串的空值、空值和空白值,c#,string,string-comparison,C#,String,String Comparison,我能解释这个问题的最好方法是使用2数据库。第一个数据库保存所有实时数据。第二个数据库保存我们定期更新的数据。我需要确定是否需要在第二个数据库中更新值。比方说一个叫做职业的领域。给出几个场景: DB1的值为null,DB 2的值为null,无更新。 DB1有空值,DB2有空值,没有更新。 DB1有空值,DB2有空值,没有更新。 DB1有空值,DB2有空值,没有更新。 DB1有一个值,DB2有空、空或任何其他值,更新。 DB1有一个null、空的空格,DB2有一个实际值update 为了实现这一目标

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

DB1的值为null,DB 2的值为null,无更新。
DB1有空值,DB2有空值,没有更新。
DB1有空值,DB2有空值,没有更新。
DB1有空值,DB2有空值,没有更新。
DB1有一个值,DB2有空、空或任何其他值,更新。
DB1有一个null、空的空格,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)
但我不认为这些方法可以处理上述情况,因为在我看来,空格和空字符串是两个不同的值。也许我错了,这篇文章就是为了找出是否有更好的方法。

这是否适合您的需要

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

    • 这适合您的需要吗

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

      你忘了他们之间的
      =
      了吗?比我快几秒钟!虽然我的稍有不同:
      返回((第一个?.Trim()?)==(第二个?.Trim()?)
      @RufusL那也不错。你忘了他们之间的
      =
      了吗?比我快几秒钟!虽然我的只有一点不同:
      返回((第一个?.Trim()。