gpt4 book ai didi

c# - 您将如何使用 LINQ 编写此映射过滤器链?

转载 作者:行者123 更新时间:2023-12-03 22:06:49 25 4
gpt4 key购买 nike

下面的 map-filter 链获取一个数字列表并将它们加倍,使用一些谓词 p 过滤结果,然后对它们进行平方剩下的:

getNumbers().map(x => x * 2).filter(x => p(x)).map(x => x ** 2)

惯用的 Python 等价物需要嵌套列表理解:

[y ** 2 for y in [x * 2 for x in getNumbers()] if p(y)]

您将如何使用 LINQ 在 C# 中编写此代码?是否也需要嵌套?

最佳答案

您可以使用 LINQ select 函数代替 map 和 Where 代替 filter

getNumbers().Select(x => x * 2).Where(x => p(x)).Select(x => Math.Pow(x, 2)).ToList();

使用 LINQ 执行此操作的另一种方法是使用查询语法。

from x in getNumbers()
select x * 2 into x
where x > p(x)
select Math.Pow(x, 2)

关于c# - 您将如何使用 LINQ 编写此映射过滤器链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61493313/

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