2013-01-22 26 views
0

使用.ToArray()函數時,是否需要隱式定義數組的大小才能容納要轉換的列表中的字符?使用.ToArray()將字符串列表轉換爲數組使用.ToArray()

String [] array = List.ToArray(); 

我試着這樣做,因爲我需要使用數組的.GetValue()能力,然而,陣列保持尺寸的1,而不是從列表拿着材料。我是否嘗試錯誤地使用.ToArray()

colAndDelimiter = new List<string>(); 
colAndDelimiter.Add(text); 

String [] cd = colAndDelimiter.ToArray(); 

這是我所有影響數組的代碼。當我Console.WriteLine()列表中它給了我整個文本。我可能會對列表的工作方式感到困惑。是否將所有內容存儲爲單個項目,這就是爲什麼數組只顯示一個地方?

+0

值要做到這一點你有沒有調試,以確保名單絕對包含多個單一項目? –

+0

什麼是完全列表? – mikesjawnbit

+0

你正在做的事其他的東西是錯的 –

回答

2

它應該可以正常工作,但請嘗試var操作員確定。

var array = List.ToArray(); 

有沒有理由使用Array.GetValue而不是建在List<T>本身 EG的功能:

string value = List.ElementAt(1); 
var values = List.GetRange(0, 5); 
0

只要你List對象是一些IEnumerable的(或類似),有項目在它裏面,這應該確實將你的列表轉換爲數組。

需要注意的是,一旦你已經創建了這個數組,將元素添加到列表不會也把它添加到陣列

4

你並不需要將其轉換爲一個數組來獲得特定字符了。

只需使用text[index]即可獲得所需的字符。

如果你真的需要它作爲一個數組,你可以使用String.ToCharArray() - 你想要一個數組char而不是數組string

編輯:

是它存儲的一切作爲一個單一的項目,這就是爲什麼陣列只顯示一個地方?

是的,是的。你正在製作一個包含stringstring s的清單:text的全部內容 - 看起來你想要的是將它逐字逐字地分開,這就是上述方法所能實現的。

1

你在做什麼很好..但讓說,你不知道的 string[] cd大小,那麼你可以這樣做以下

var colAndDelimiter = new List<string>(); 
colAndDelimiter.Add(text); 
String[] cd = { }; 
cd = colAndDelimiter.ToArray(); 

找到光盤中的數據的位置 字符串值= CD [0];

更新: 如果您想根據被存儲在一個單一的線,那麼你可以做到這一點,而不必申報cd變量string[] cd;

var colAndDelimiter = new List<string>(); 
colAndDelimiter.Add("Hello, World, Week, Tuesday"); 
var cd = colAndDelimiter[0].Split(','); 
相關問題