📜  将字符串转换为列表 int c# (1)

📅  最后修改于: 2023-12-03 15:39:16.542000             🧑  作者: Mango

将字符串转换为列表 int c#

在 C# 中,将字符串转换为数字列表是很常见的操作,本文将介绍两种常用的方法。

使用 Split() 方法

Split() 方法可以将一个字符串分割成若干子串,并将它们保存在一个数组中。例如,我们可以使用它将下面的字符串转换为一个数字列表:

string input = "1,2,3,4,5";
string[] parts = input.Split(',');
List<int> numbers = new List<int>();
foreach (string part in parts)
{
    numbers.Add(int.Parse(part));
}

上面的代码将字符串按逗号分割,得到一个字符串数组,然后将每个字符串转换为数字并保存在一个整型列表中。

请注意,上面的代码假定输入中只包含逗号和数字。如果输入中包含其它字符,如空格、括号等,需要先将它们去掉。例如,我们可以使用 Trim() 方法去掉字符串首尾的空格,使用 Replace() 方法将左右括号替换为空格。

使用正则表达式

除了 Split() 方法,我们还可以使用正则表达式来提取字符串中的数字。例如,我们可以使用下面的代码将一个字符串中的所有数字提取出来:

string input = "1,2,3,4,5";
var matches = Regex.Matches(input, @"\d+");
List<int> numbers = new List<int>();
foreach (Match match in matches)
{
    numbers.Add(int.Parse(match.Value));
}

上面的代码使用正则表达式 \d+ 来匹配一个或多个数字,然后依次将得到的匹配结果转换为数字并保存在一个整型列表中。

请注意,上面的代码假定输入中只包含数字和逗号。如果输入中包含其它字符,需要在正则表达式中加上相应的字符集。例如,如果输入中包含空格和括号,可以使用 [\d\(\)\s]+ 来匹配所有数字、左右括号和空格。