有没有办法将字符串数组转换为int数组,就像在C#中将字符串解析为int一样简单。
int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.
我尝试使用int类的扩展方法自己添加此功能,但它们不会变为静态。
关于如何快速而美观地做到这一点的任何想法?
答案 0 :(得分:17)
这个linq查询应该这样做:
strArray.Select(s => int.Parse(s)).ToArray()
答案 1 :(得分:8)
int[] a = Array.ConvertAll("123,456".Split(','), s => Int32.Parse(s));
应该做得很好。如果您不想要例外,可以修改lambda以使用TryParse。
答案 2 :(得分:6)
int[] a = "123,456".Split(’,’).Select(s => int.Parse(s)).ToArray();
答案 3 :(得分:3)
”123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();
答案 4 :(得分:3)
使用此:
"123,456".Split(',').Select(s => int.Parse(s)).ToArray()
答案 5 :(得分:3)
我想,就像那样:
string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();
答案 6 :(得分:2)
这是扩展方法。这是在字符串上完成的,因为您无法向字符串添加静态函数。
public static int[] ToIntArray(this string value)
{
return value.Split(',')
.Select<string, int>(s => int.Parse(s))
.ToArray<int>();
}
以下是您使用它的方式
string testValue = "123, 456,789";
int[] testArray = testValue.ToIntArray();
这假设您想要拆分','如果没有,那么您必须更改ToIntArray