初始化的字符串似乎包含 string.Empty

发布于 2024-11-05 10:34:47 字数 784 浏览 4 评论 0原文

我无意中跳入了这个,不知道为什么会发生这种情况

string sample = "Hello World";
if (sample.Contains(string.Empty))
{
    Console.WriteLine("This contains an empty part ? at position " + sample.IndexOf(string.Empty));
    Console.WriteLine(sample.LastIndexOf(string.Empty));
    Console.WriteLine(sample.Length);
}

输出

这包含一个空部分?在位置 0

10

11

我对最后一部分很满意,但我不知道为什么它被评估为 true。甚至 IndexofLastIndexOf 也有单独的值。

谁能帮我解释为什么会这样吗?

编辑

我相信这与我的问题有点相关,并且对那些偶然发现这个问题的人也有帮助。

请参阅此链接: 为什么 "abcd".StartsWith("") 返回 true?< /a>

I jumped into this accidentally and have no clue as to why this is happening

string sample = "Hello World";
if (sample.Contains(string.Empty))
{
    Console.WriteLine("This contains an empty part ? at position " + sample.IndexOf(string.Empty));
    Console.WriteLine(sample.LastIndexOf(string.Empty));
    Console.WriteLine(sample.Length);
}

Output

This contains an empty part ? at position 0

10

11

I am happy with the last part, but i have no idea why this is evaluated true. Even Indexof and LastIndexOf have separate values.

Could anyone help me out on why is this so?

EDIT

I believe this is a bit relevant to my question and would be also helpful to those who stumble upon this question.

See this SO link: Why does "abcd".StartsWith("") return true?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

逆流 2024-11-12 10:34:47

来自 IndexOf 的 msdn

如果值为 String.Empty,则返回值为 0。

对于 LastIndexOf

如果 value 是 String.Empty,则返回值是该实例中的最后一个索引位置。

对于包含

如果 value 参数出现在此字符串中,或​​者 value 为空字符串 (""),则为 true;

From msdn for IndexOf

If value is String.Empty, the return value is 0.

For LastIndexOf

If value is String.Empty, the return value is the last index position in this instance.

For Contains

true if the value parameter occurs within this string, or if value is the empty string ("");

初见终念 2024-11-12 10:34:47

问题:字符串“Hello World”是否包含String.Empty?

回答:是的。

每个可能的字符串都包含 String.Empty,因此您的测试正确返回 true。

如果您想测试字符串是否为空,那么以下代码就是您想要的

if (string.IsNullOrEmpty(sample)) 
{

}

Question: Does the string "Hello World" contain String.Empty?

Answer: Yes.

Every possible string contains String.Empty, so your test is correctly returning true.

If you are trying to test if your string is empty, then the following code is what you want

if (string.IsNullOrEmpty(sample)) 
{

}
一杯敬自由 2024-11-12 10:34:47

这记录在 String.Contains 方法:

返回值
类型:System.Boolean
true 如果 value 参数出现在此字符串中,或​​者 value 为空字符串 ("");否则,

并在 String.IndexOf 方法

如果值为 String.Empty,则返回值为 0。

并且在 LastIndexOf 方法

如果 value 是 String.Empty,则返回值是该实例中的最后一个索引位置。

This is documented in the String.Contains Method:

Return Value
Type: System.Boolean
true if the value parameter occurs within this string, or if value is the empty string (""); otherwise, false.

And in String.IndexOf Method

If value is String.Empty, the return value is 0.

And in LastIndexOf Method

If value is String.Empty, the return value is the last index position in this instance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文