C# string[] 转 int[]

发布于 2024-08-23 20:17:21 字数 250 浏览 4 评论 0原文

有没有一种方法可以将字符串数组转换为 int 数组,就像在 C# 中将字符串解析为 int 一样简单。

int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.

我尝试过使用 int 类的扩展方法来自己添加此功能,但它们不会变成静态的。

关于如何快速而漂亮地做到这一点有什么想法吗?

Is there a way to convert string arrays to int arrays as easy as parsing an string to an int in C#.

int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.

I have tried using extension methods for the int class to add this functionality myself but they don't become static.

Any idea on how to do this fast and nice?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

写给空气的情书 2024-08-30 20:17:21

这个 linq 查询应该做到这一点:

strArray.Select(s => int.Parse(s)).ToArray()

This linq query should do it:

strArray.Select(s => int.Parse(s)).ToArray()
蛮可爱 2024-08-30 20:17:21
int[] a = Array.ConvertAll("123,456".Split(','), s => Int32.Parse(s));

应该做得很好。如果您不希望出现异常,可以修改 lambda 以使用 TryParse。

int[] a = Array.ConvertAll("123,456".Split(','), s => Int32.Parse(s));

Should do just fine. You could modify the lambda to use TryParse if you don't want exceptions.

鲜肉鲜肉永远不皱 2024-08-30 20:17:21
int[] a = "123,456".Split(’,’).Select(s => int.Parse(s)).ToArray();
int[] a = "123,456".Split(’,’).Select(s => int.Parse(s)).ToArray();
栖迟 2024-08-30 20:17:21
”123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();
”123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();
多像笑话 2024-08-30 20:17:21

使用这个:

"123,456".Split(',').Select(s => int.Parse(s)).ToArray()

Use this :

"123,456".Split(',').Select(s => int.Parse(s)).ToArray()
我最亲爱的 2024-08-30 20:17:21

我想,就像这样:

string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();

I think, like that:

string[] sArr = { "1", "2", "3", "4" };
int[] res = sArr.Select(s => int.Parse(s)).ToArray();
大姐,你呐 2024-08-30 20:17:21

这是扩展方法。这是在字符串上完成的,因为您无法将静态函数添加到字符串中。

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

Here is the extension method. This is done on string, because you can't add a static function to a string.

public static int[] ToIntArray(this string value)
{
    return value.Split(',')
        .Select<string, int>(s => int.Parse(s))
        .ToArray<int>();
}

Here is how you use it

string testValue = "123, 456,789";

int[] testArray = testValue.ToIntArray();

This assumes you want to split on ',' if not then you have to change the ToIntArray

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文