这是我首先要解决的问题: 将类似"%1,%2,%3"的字符串转换为列表 如果除了空格和‘,’之外还有非数字字符,则将int.MinValue添加到列表中.

因此,如果字符串是"abc,2,3",那么它应该返回一个带有"-2147483648,2,3"的列表.

这是我到目前为止所拥有的代码,它完成了我在上面写的内容.

public static IList<int> ConvertToListInt(string data)
{
    var list = new List<int>();
    var nums = data.Split(',');
    foreach (var item in nums)
    {
        if (int.TryParse(item, out var num))
        {
             list.Add(num);
        } 
        else
        {
            list.Add(int.MinValue);
        }
    }

    return list;
}

是否可以将ConvertToListInt()中的代码替换为Linq表达式?

推荐答案

您只需将其移动到Select表达式即可:

var list = data.Split(',')
    .Select(item => int.TryParse(item, out var num) ? num : int.MinValue)
    .ToList();

Csharp相关问答推荐

无法使用并行库并行化我的代码

是否可以将gltf转换为字节数组,然后将字节数组转换回文件?

MongoDB实体框架核心:表达必须可写

在Dapper中使用IasyncEum重写GetAsyncEum方法

更改对象的旋转方向

在多对多关系上不删除实体

此反射有什么问题.是否发送值转换委托?

如何使datagridview的列具有响应性,以便不是所有列都更改其宽度

如何将不同类型的扩展参数的javascript函数转换成C#风格?

MigraDoc文档

HttpClient 415不支持的媒体类型错误

net中从位图获取坐标和绘制折线

自定义列表按字符串的部分排序

如何在发布NuGet包之前设置命名空间?

C#如何获取字符串中引号之间的文本?

如何在特定时间间隔运行多个后台任务?

最小API定义的Swagger标头参数

我什么时候不应该在Dispose中调用EgSuppressFinalize(This)?

使用生产环境调试我的应用程序的快速方法

无法停止PowerShell中的低级挂钩(c#挂钩)