📅  最后修改于: 2023-12-03 14:53:47.983000             🧑  作者: Mango
在C#中,我们常常需要将一个字符串表示的列表转换为实际的列表。这时我们可以使用枚举器( Enumerator
)来遍历该列表并将其转换为实际的列表。下面是一个例子:
string listString = "1, 2, 3, 4, 5";
List<int> list = new List<int>();
foreach (string item in listString.Split(','))
{
int value;
if (int.TryParse(item.Trim(), out value))
{
list.Add(value);
}
}
在上面的代码中,我们首先定义了一个字符串变量 listString
,表示列表的字符串表示形式。接下来,我们定义了一个空的 List<int>
实例 list
,用于保存将要转换成的实际列表。然后,我们使用 foreach
循环遍历了该字符串列表,将每个元素转换成整型,并将其添加到 list
中。
需要注意的是,在每个元素转换之前,我们使用 Trim()
方法将其前后的空格去掉,以便于正确解析每个元素。此外,在转换之前,我们使用了 int.TryParse()
方法来尝试将其转换为整数类型。如果转换成功,则将其添加到 list
中。
在实际开发中,我们可能需要将不同类型的列表从字符串表示形式转换为实际的列表。这时,我们可以使用泛型方法来实现:
public static List<T> ConvertToList<T>(string listString, char separator = ',')
{
List<T> list = new List<T>();
foreach (string item in listString.Split(separator))
{
try
{
T value = (T)Convert.ChangeType(item.Trim(), typeof(T));
list.Add(value);
}
catch
{
// Ignore invalid items
}
}
return list;
}
在上面的代码中,我们定义了一个 ConvertToList
方法,该方法使用泛型参数 T
来表示将要转换成的列表元素类型。该方法首先创建一个空的 List<T>
实例 list
,用于保存将要转换成的实际列表。
然后,我们使用 foreach
循环遍历了该字符串列表,将每个元素转换成指定的类型,并将其添加到 list
中。在转换之前,我们使用了 Convert.ChangeType()
方法来实现类型转换。如果转换成功,则将其添加到 list
中。如果转换失败,则忽略该元素。
需要注意的是,该方法还提供了一个可选的参数 separator
,用于指定字符串的分隔符。默认为逗号。
总的来说,在C#中,将列表字符串转换为实际的列表是一个比较常见的操作。我们可以使用一些简单的方法来实现这个操作,使我们的开发工作变得更加便捷。