gpt4 book ai didi

c# - 将字符串拆分为 List 忽略无 int 值

转载 作者:太空狗 更新时间:2023-10-29 20:52:52 27 4
gpt4 key购买 nike

我正在使用以下代码将字符串拆分为 List ,但有时字符串包含非整数值,这些值的处理方式不同。

一个示例字符串可能是这样的:1,2,3,4,x

代码如下:

List<int> arrCMs = new List<int>(strMyList.Split(',').Select(x => int.Parse(x)));

问题是它一碰到“x”就会抛出错误,因为“x”无法解析为整数。

如何让它忽略非整数值?我确定我应该能够使用 int.TryParse 做一些事情,但我不太明白。

谢谢

最佳答案

List<int> arrCMs = strMyList.Split(',')
.Select(possibleIntegerAsString => {
int parsedInteger = 0;
bool isInteger = int.TryParse(possibleIntegerAsString , out parsedInteger);
return new {isInteger, parsedInteger};
})
.Where(tryParseResult => tryParseResult.isInteger)
.Select(tryParseResult => tryParseResult.parsedInteger)
.ToList();

上例中的第一个 Select 返回 anonymous type描述了 int.TryParse 的结果- 也就是说,它是否是一个有效的整数,如果是,该值是多少。

Where 子句过滤掉那些无效的。

第二个 Select 然后从能够被解析的字符串中检索已解析的值。

关于c# - 将字符串拆分为 List<int> 忽略无 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com