【发布时间】:2020-08-10 21:44:01
【问题描述】:
如何使用 select 和 where 将我的 if 语句 和 foreach 更改为 linq 中更简洁的内容>.
我尝试将 if 语句变成 where 子句,然后使用 select 查询来替代 Foreach 循环但这似乎有类型问题并且不起作用。
{
StripeConfiguration.ApiKey = _appSettings.StripeSecretKey;
var profile = await _userManager.FindByIdAsync(customerServiceID);
var stripeId = profile.StripeAccountId;
if (stripeId == null)
throw new ArgumentException("No associated Stripe account found.");
List<PaymentMethodDto> result = new List<PaymentMethodDto>();
var options = new PaymentMethodListOptions
{
Customer = stripeId,
Type = "card",
};
var service = new PaymentMethodService();
var payments = await service.ListAsync(options);
if (payments != null && payments.Data?.Count > 0)
{
payments.Data.ForEach((x) =>
{
result.Add(
new PaymentMethodDto
{
Brand = x.Card.Brand,
LastDigits = x.Card.Last4,
StripeToken = x.Id,
CustomerID = x.CustomerId
});
});
}
return result;
}
【问题讨论】:
-
payments什么时候会成为null?
标签: linq asp.net-core stripe-payments