相关疑难解决方法(0)

时间:2019-03-17 标签:c#String.Compare vs String.CompareOrdinal

在 C# 中,String.CompareOrdinal(strA, strB)相当于String.Compare(strA, strB, StringComparison.Ordinal)?

我检查了https://msdn.microsoft.com/en-us/library/e6883c06.aspx上的文档,它没有提到这一点。

c# string

5
推荐指数
1
解决办法
1699
查看次数

为什么在将值与常量进行比较之前检查null?

有时,必须使用常量检查值是否相等.在这种情况下,我总是看到这样的代码:

if (!string.IsNullOrEmpty(text))
{
    if (text == "Some text here")¹
    {
        // Do something here.
    }
}
Run Code Online (Sandbox Code Playgroud)

就我而言,我宁愿写:

if ("Some text here".Equals(text))
{
    // Do something here.
}
Run Code Online (Sandbox Code Playgroud)

毕竟,如果textnull,Equals将返回false,这是预期的.常量和变量的反转感觉很奇怪,但对初学者来说仍然是可以理解的,并且避免了NullReferenceException它会被抛出text.Equals("Some text here").

我错过了什么吗?

为什么我见过的所有源代码都使用第一个示例中的语法,而不是第二个示例中的语法?


¹在实际代码中,它宁愿是常量字段或只读字段.为了缩短示例,我将字符串内联.

c#

2
推荐指数
2
解决办法
919
查看次数

C#字符串比较'ö''oe''o'

可能重复:
如何识别拼写不同的相似单词

在比较这三个字符串:“ voest”,“ vost”和“vöst”(德国文化)时,我试图使它返回true,因为它是同一个词。(实际上,只有oe和ö相同,但是例如对于DB归类CI来说是相同的,这是正确的,因为'vost'是错误键入的'voest')

无论我提供给该方法什么参数,string.Compare(..)/ string.Equals(..)始终返回false。

如何使string.Compare()/ Equals(..)返回true?

c# culture string-comparison

2
推荐指数
1
解决办法
1568
查看次数

为什么C#中的对象比较奇怪?

当我比较输入的两个变量object并且两者都包含相同的值时,使用==运算符的比较结果产生false.

object Var1 = "X";
object Var2 = "X";

// This produces false result
bool Match = Var1 == Var2;
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

编辑:上面是实际工作的代码!

我基于我的真实代码,它看起来像这样,不起作用:

ChoiceValue = Choice.GetValue(FieldTemplate.ValueDataType);
if (ChoiceValue == Field.Value) RadioButton.IsChecked = true;
Run Code Online (Sandbox Code Playgroud)

ChoiceValueobject和也是Field.Value属性类型object.

显然在不同情况下的工作方式不同.

c# comparison string-comparison

0
推荐指数
2
解决办法
241
查看次数

标签 统计

c# ×4

string-comparison ×2

comparison ×1

culture ×1

string ×1