gpt4 book ai didi

C# 和 LINQ - 任意语句而不是 let

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:04 25 4
gpt4 key购买 nike

假设我正在执行这样的 LINQ 查询(顺便说一句,这是 LINQ to Objects):

var rows = 
from t in totals
let name = Utilities.GetName(t)
orderby name
select t;

因此 GetName 方法只是从 Total 对象计算显示名称,并且是对 let 关键字的恰当使用。但是假设我有另一种方法 Utilities.Sum(),它对 Total 对象应用一些数学运算并在其上设置一些属性。我可以使用 let 来实现这一点,如下所示:

var rows =
from t in totals
let unused = Utilities.Sum(t)
select t;

这里有一点很奇怪,即 Utilities.Sum() 必须返回一个值,即使我不使用它也是如此。如果它返回 void,有没有办法在 LINQ 语句中使用它?我显然不能做这样的事情:

var rows =
from t in totals
Utilities.Sum(t)
select t;

PS - 我知道在 LINQ 表达式中调用具有副作用的方法可能不是好的做法。只是想完全理解 LINQ 语法。

最佳答案

不,没有执行 Action 的 LINQ 方法在 IEnumerable<T> 中的所有项目上.这是very specifically left out因为设计师根本不希望它出现在里面。

关于C# 和 LINQ - 任意语句而不是 let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28487607/

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