我想比较两个字符串,其中之一可能是null
字符串,我正在使用C#的StringComparison.InvariantCultureIgnoreCase
功能。当遇到null
字符串时,会在运行时引发异常。我应该怎么做才能比较即使null
字符串?c#中的字符串比较#
0
A
回答
3
还有期权已经给你了,你可以考虑使用StringComparer.InvariantCultureIgnoreCase
代替。 StringComparer
处理空值,而不抛出异常:
using System;
class Test
{
static void Main()
{
StringComparer comparer = StringComparer.InvariantCultureIgnoreCase;
Console.WriteLine(comparer.Compare("a", "A"));
Console.WriteLine(comparer.Compare("a", null));
Console.WriteLine(comparer.Compare(null, "A"));
}
}
0
您可以使用
if (String.IsNullOrEmpty(yourString)) { // If true... }
3
使用使用此的
string.Compare(s1, s2, StringComparison.InvariantCultureIgnoreCase);
好处是,它会返回0(等于)两个字符串是否null
- 这是预期的结果。
0
当字符串为空时,您想要发生什么情况。
你可能只是回落到空字符串是这样的:(str ?? "").Compare(...)
0
这从一个职位,我记得@乔恩飞碟双向回答一个问题有关比较:
string myCompareString = "compare me";
if(myCompareString.Equals(myOtherMaybeNullString, StringComparison.InvariantCultureIgnoreCase))
{
// blah blah
}
反对的原因你知道的字符串比较不为空的字符串那可能是空的(除非你比较2个可能的空字符串)。
0
正如一个额外的选项String.Equals处理空,所以你也可以使用:
使用系统;
class Test
{
static void Main()
{
var a = String.Equals("test", "Test", StringComparison.InvariantCultureIgnoreCase);
var b = String.Equals("test", null, StringComparison.InvariantCultureIgnoreCase);
var c = String.Equals(null, "Test", StringComparison.InvariantCultureIgnoreCase);
var d = String.Equals(null, null, StringComparison.InvariantCultureIgnoreCase);
}
}
相关问题
- 1. 比较字符串指针?比较字符串C
- 2. 字符串比较C#
- 3. 比较字符串C++
- 4. 字符串比较C++
- 5. 字符串比较C - strcmp()
- 6. C++字符串比较
- 7. C#字符串比较?
- 8. 字符串比较 - C
- 9. Objective-C字符串比较
- 10. c#比较2字符串
- 11. C#比较字符串ignoreCase
- 12. C# - 比较字符串
- 13. 比较字符串(C++)
- 14. 字符串比较与目标C中的类比较-C
- 15. Objective-C中的字符串比较
- 16. 如何比较C++中的字符串?
- 17. C中的字符串比较#
- 18. 比较C中的字符串 - strcmp
- 19. 比较C++中的两个字符串
- 20. c中的字符串比较#
- 21. 比较C#中的两个字符串
- 22. C++比较c字符串的问题
- 23. C字符串的比较运算符
- 24. 在C++中比较字符串
- 25. 在C#中比较字符串
- 26. 在Objective-C中比较字符串
- 27. 字符串比较C# - 全字匹配
- 28. 字符串/字符比较与python中的按位比较
- 29. 字符串比较
- 30. 比较字符串
你可以先检查它们是否都是空的String.IsNullOrEmpty – Pabuc 2011-01-25 13:13:27
你正在执行什么样的比较?平等还是订购? – 2011-01-25 13:14:40
等于比较 – Vasanth 2011-01-25 13:25:34