2014-01-20 29 views
0

我的数据读取器读取我想从读取器拆分结果并取第二个数字的行。所以例如数字是42我想要的2.我怎样才能做到这一点很容易。有大约一百万种我见过的方式,但没有一个非常简单。先谢谢你!简单的方法来拆分两个数字

ld.ScaleGroup = (ScaleGroup)reader["ScaleGroup"]; 
string[] split = ld.ScaleGroup.ToString().Split(?); 
+1

什么是ScaleGroup?你不能让读者阅读它。如果它是一个'int',你应该使用'reader.GetInt32(reader.GetOrdinal(“ScaleGroup”))',那么你可以使用'ToString'将它转换为'string',它有一个索引器来访问一个char。 –

+0

看看'string.ToCharArray()' – ja72

+0

@ ja72:为什么'ToCharArray',他可以直接访问一个字符:'char second =“42”[1];' –

回答

3

你并不需要使用Split()如果你只是想在第2个字符。只写:

string str = ld.ScaleGroup.ToString(); 
char secondDigit = str[1]; 

确保str确实至少有2个字符,当然。

编辑:如果你想要它作为一个字符串,请参阅D Stanley的回答使用Substring()

Split()用于包含由分隔符(或字符)分隔的令牌序列的字符串。例如,使用分隔符,分割"a,b,c"将返回3个字符串的阵列"a","b""c"

7

如果总是希望你可以做

ld.ScaleGroup.ToString().Substring(1,1); 

但对于数< 10第二位? > 100?

或者,如果你总是希望那些数字(如123 - > 3)然后取数模10:

int ones = ld.ScaleGroup % 10; 
+1

+1特别是'%' - 不知道是什么将数字转换为字符串以对其执行一些计算的点... –

相关问题