目录
方法1:使用Split和Convert.ToInt64
方法2:使用LINQ的Select和ToList
方法3:使用TryParse进行异常安全转换(推荐)
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
在C#中,如果你有一个由逗号分隔的字符串,如:1,2,3,并希望将这个字符串中的每个数字转换为long或int类型,然后将它们添加到一个List<long>或List<int>中,你可以按照以下步骤操作,下面使用List<long>为例。
方法1:使用Split和Convert.ToInt64
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
string numbersString = "123,456,789";
List<long> numbersList = new List<long>();
// 使用Split方法分割字符串,然后使用Convert.ToInt64转换每个分割后的字符串为long并添加到列表中
foreach (string numberStr in numbersString.Split(','))
{
numbersList.Add(Convert.ToInt64(numberStr));
}
// 输出结果以验证
foreach (long number in numbersList)
{
Console.WriteLine(number);
}
}
}
方法2:使用LINQ的Select和ToList
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
string numbersString = "123,456,789";
List<long> numbersList = numbersString.Split(',')
.Select(long.Parse) // 使用long.Parse可以直接转换并捕获异常,比Convert.ToInt64更安全
.ToList(); // 将结果转换为List<long>
// 输出结果以验证
foreach (long number in numbersList)
{
Console.WriteLine(number);
}
}
}
方法3:使用TryParse进行异常安全转换(推荐)
如果你担心某些字符串可能无法转换为long(例如,如果字符串包含字母或非数字字符),可以使用long.TryParse方法,它在转换失败时不会抛出异常,而是返回false。
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
string numbersString = "123,456,789,abc"; // 示例中包含非数字字符串,实际应用中应确保所有字符串都是数字或进行适当的错误处理。
List<long> numbersList = new List<long>();
foreach (string numberStr in numbersString.Split(','))
{
if (long.TryParse(numberStr, out long number)) // 使用TryParse进行安全转换并捕获转换结果
{
numbersList.Add(number); // 只有成功转换时才添加到列表中
}
else
{
Console.WriteLine($"无法转换字符串 '{numberStr}' 为 long."); // 输出错误信息或进行其他错误处理。
}
}
// 输出结果以验证(实际应用中应检查列表是否为空或包含预期数量的元素)
foreach (long number in numbersList)
{
Console.WriteLine(number);
}
}
}
使用TryParse方法可以确保你的程序在面对非法的输入时更加健壮,避免因非法输入而导致的程序崩溃。根据需要选择适合你的代码吧。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。