我需要使用.ToString()来使字符串等于字符串数组的索引吗
本文关键字:字符串 数组 索引 ToString | 更新日期: 2023-09-27 18:22:27
好的,所以我有一个字符串数组,如下所示:
string[] myStringArray = new string[2];
myStringArray[0] = "Foo";
myStringArray[1] = "Bar";
要声明一个新字符串并使其等于数组中的第一个字符串,我要这样做吗:
string foo = myStringArray[0];
或者这个:
string foo = myStringArray[0].ToString();
基本的东西我知道,但如果你不问。。。
感谢
您可以这样做:
string foo = myStringArray[0];
在字符串实例上调用.ToString
只需返回相同的实例,因此您不需要它
public override string ToString()
{
return this;
}
否。myStringArray[0]
已经是一个字符串,所以您不必自己指定ToString()
。如果myStringArray[0]
不是一个字符串,您就必须这样做。
ToString()
是一个非常低级的调用,它是为最基本的object
定义的。所以它存在于所有的C#对象上,你可以在任何事情上调用它,即使是在不需要它的事情上。
例如,你可以编写"string".ToString().ToString()
,编译器不会介意,它只会显示为"string"
。
您不必调用ToString()
顺便说一句,如果你反编译String类,你会看到这是ToString()的实现:
public override string ToString()
{
return this;
}
正如其他人所说,string
上的ToString()
返回字符串本身,因此调用ToString()
完全没有用。
事实上,它甚至是危险的,因为如果您的字符串是null
,它可能会抛出NullReferenceException
。
不需要使用ToString()
,String[]
的项已经是字符串。
string foo = myStringArray[0];
以上将达到目的,如果你有LINQ,那么你可以使用
string foo = myStringArray.First();
如果您不确定字符串数组是否一直都有值,那么您可以使用
string foo = myStringArray.FirstOrDefault();
希望这就是你想要的。