2012-02-05 48 views
0

好了,所以我有一個字符串數組,像這樣:我需要使用的ToString(),使一個字符串等於一個字符串數組的索引

string[] myStringArray = new string[2]; 

myStringArray[0] = "Foo"; 
myStringArray[1] = "Bar"; 

要聲明一個新的字符串,使其等於在我的數組的第一個字符串做我這樣做:

string foo = myStringArray[0]; 

或者這樣:

string foo = myStringArray[0].ToString(); 

基本的東西,但我知道,如果你不問...

感謝

+0

只是添加,我一直在使用ToString()直到現在,它只是發生在我身上,我可能不需要! – JMK 2012-02-05 13:29:55

回答

2

你這樣做:

string foo = myStringArray[0]; 

調用一個字符串實例.ToString只返回此相同的實例,所以你並不需要它。下面是這種方法是如何爲字符串類定義:

public override string ToString() 
{ 
    return this; 
} 
1

無需使用ToString(),一個String[]的項目已經是字符串。

2

myStringArray[0]已經是一個字符串,所以你不必指定ToString()自己。如果myStringArray[0]不是字符串,則必須執行此操作。

ToString()是一個非常低級的調用,它定義了所有最基本的東西,object。所以它存在於所有的C#對象上,你可以在任何東西上調用它,即使在不需要它的東西上。
E.G.你可以寫"string".ToString().ToString(),編譯器不會介意,它只會以"string"的形式出現。

2

您不必調用toString()

順便說一句,如果你反編譯String類,你會看到,這是toString()實現:

public override string ToString() 
{ 
    return this; 
} 
1
string foo = myStringArray[0]; 

如果你有LINQ,那麼你可以使用

string foo = myStringArray.First(); 

如果你不確定字符串數組是否有hav e值的所有時間,然後你可以使用

string foo = myStringArray.FirstOrDefault(); 

希望這是你在找什麼。

2

正如其他人所說,ToString()string上返回字符串本身,因此調用ToString()完全沒用。

事實上,它甚至危險,因爲它可能會拋出一個NullReferenceException如果你的字符串是null

相關問題