2012-07-06 20 views
0

我在這裏做了一些搜索,找不到我確切需要的答案。我有一個結構包含我需要發送到Web服務的搜索參數,而我試圖填充的其中一個字段是List。原始代碼是爲了填寫這個參數而編寫的。當它的String []類型的,所以它看起來像這樣,有改變的變量名,在Visual C中需要一種像Java的StringTokenizer hasTokens()方法#

searchParams.someParam= (new List<string>(txtboxInput.Text.Split(';'))).ToArray(); 

(的;在劃定的用戶可以進入不同的選項)

所以我在想什麼用List.Add()填充列表',而'有可用的標記。我搜索了.NET中是否存在類似StringTokenizer的實現。大多數答案都表示使用string.Split,但沒有提及Java的StringTokenizer所具有的其他有用方法。

謝謝任何​​深思熟慮的回覆。

+0

另外,我寧願避免在這種特殊情況下使用.NET Regex,如果可能的話,我意識到這是一個可能的解決方案。 – darethas 2012-07-06 17:07:31

+0

你想要什麼「有用」的方法?此外,該代碼分成一個數組,將其移動到一個列表,然後返回到一個數組。你可以把它剪掉,然後做分割。 – scottheckel 2012-07-06 17:10:57

回答

2

從的問題,它看起來像你只是想:

List<string> list = txtboxInput.Text.Split(';').ToList(); 
1

我在這裏看到了一些東西,我認爲你是在找什麼(這是更多關於如何一起工作的一個問題Split()我們不需要很多的nextTokenhasMoreTokens方法Java的StringTokenizer提供了,因爲它們是內置了由Split返回的數組

// From the question searchParams.someParam appears to be an array of strings, so you 
// can simplify to this vs what is in your above question 
searchParams.someParam = txtboxInput.Text.Split(';'); 

// Looping through and adding to a list of string 
var myTokens = txtboxInput.Text.Split(';'); 
var myTokenList = new List<string>(); 
for(int index = 0; index < myTokens.length; index++) { 
    myTokenList.Add(myTokens[index]); 
} 

// Total amount of tokens returned 
var length = myTokens.length; 

此外,RegEx在這裏沒有多大意義,因爲您只是分割一個字符串。根據字符串的大小,您可能會獲得性能提升,但最終分割會更簡單。如果你沒有性能問題,那麼我不會改變你現在擁有的。

+0

感謝您的進一步解釋。 – darethas 2012-07-06 17:33:56

相關問題