gpt4 book ai didi

Linq 查询查找列表中的非数字项?

转载 作者:行者123 更新时间:2023-12-02 07:46:24 24 4
gpt4 key购买 nike

假设我有以下列表:

        var strings = new List<string>();
strings.Add("1");
strings.Add("12.456");
strings.Add("Foobar");
strings.Add("0.56");
strings.Add("zero");

我可以在 Linq 中编写某种查询,它只会返回数字项,即列表中的第 1、2 和 4 项吗?

-R.

最佳答案

strings.Where(s => { double ignored; return double.TryParse(s, out ignored); })

这将返回所有可解析为 double 的字符串作为字符串。如果您希望它们作为数字(这更有意义),您可以编写一个扩展方法:

public static IEnumerable<double> GetDoubles(this IEnumerable<string> strings)
{
foreach (var s in strings)
{
double result;
if (double.TryParse(s, out result))
yield return result;
}
}

不要忘记 double.TryParse() 使用您当前的文化,因此它会在不同的计算机上给出不同的结果。如果您不想这样,请使用 double.TryParse(s, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out result)

关于Linq 查询查找列表中的非数字项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657888/

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