2012-07-06 16 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

相关问题