gpt4 book ai didi

c# - 使用 LINQ 从字符串列表中提取整数

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

我有一个 List<string> ,其中一些字符串是数字。我想将这个子集提取到 List<int> 中.

我以一种非常冗长的方式完成了这项工作 - 如下所示 - 但我觉得必须有一种更简洁的 LINQ 方式来构建它。有什么想法吗?

List<string> myStrs = someListFromSomewhere;
List<int> myInts = new List<int>();

foreach (string myStr in myStrs)
{
int outInt;
if (int.TryParse(myStr, out outInt))
{
myInts.Add(outInt);
}
}

显然,我不需要解决这个问题 - 它主要用于我的 LINQ 教育。

最佳答案

你可以这样做:

int parsed = 0;

myInts = myStrs.Where(x => int.TryParse(x, out parsed)).Select(x => parsed);

之所以可行,是因为 LINQ 运算符的执行被推迟了,这意味着:
对于 myStrs 中的每个项目,首先执行 Where 中的代码,并将结果写入 parsed。如果 TryParse 返回 true,则执行 Select 中的代码。一个项目的整个代码在为下一个项目运行整个代码之前运行。

关于c# - 使用 LINQ 从字符串列表中提取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910840/

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