【发布时间】:2019-10-02 10:05:24
【问题描述】:
我有一个 foreach 循环,我在其中迭代一个列表以确保每个项目都是有效的并希望返回一个布尔值。
这是我的 foreach 代码:
bool isValid = true;
foreach (var req in requestList)
{
if (!req.ChannelId.HasValue || !req.PayoutAmountInCents.HasValue)
{
isValid = false;
PayoutFDEvents.LogInvalidPayoutRequest(this.BuildPayoutFDDocument(req), "missing channelId or patronage amount");
}
}
这是我将其转换为 linq 语句的尝试:
var isValid = requestList
.Select(r =>
{
if (!r.ChannelId.HasValue || !r.PayoutAmountInCents.HasValue)
{
PayoutFDEvents.LogInvalidPayoutRequest(this.BuildPayoutFDDocument(r), "missing channelId or patronage amount");
return false;
}
return true;
});
但是,看起来我的实现返回了一个布尔列表。有没有办法可以返回一个整体的布尔值?
【问题讨论】:
-
LINQ 在这里不合适,因为
PayoutFDEvents.LogInvalidPayoutRequest调用。这是一个副作用,而不是投影逻辑的一部分。坚持原来的foreach循环。 -
我想记录所有无效项目
-
这两个答案对你有用吗?