C# 比较两个字符串的空值、空值和空白值
我能解释这个问题的最好方法是使用2数据库。第一个数据库保存所有实时数据。第二个数据库保存我们定期更新的数据。我需要确定是否需要在第二个数据库中更新值。比方说一个叫做职业的领域。给出几个场景: DB1的值为null,DB 2的值为null,无更新。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 为了实现这一目标
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()。