我需要使用类似Linq的东西来选择来自Stripe.Net的特定发票数据。 m.Description为null,因此我需要从Plan.Name获取描述,该描述包含在StripeInvoiceLineItems.Data.Plan.Name中。这是我的代码。
//Get Invoices
var invoices = StripeHelper.GetAllInvoices(merchant.StripeCustomerId);
var convertInvoices = invoices
.Select(m => new Stripe.StripeInvoice
{
Id = m.Id,
Description = m.StripeInvoiceLineItems.Data.Where(i => i.InvoiceId == m.Id).Select(i => i.Plan.Name).ToString(),
StripeInvoiceLineItems = m.StripeInvoiceLineItems,
Date = m.Date,
Paid = m.Paid,
Total = m.Subtotal,
NextPaymentAttempt = m.NextPaymentAttempt,
})
.ToList();
这也不起作用。
m.StripeInvoiceLineItems.Data[0].Plan.Name
没有错误。我只是没有任何数据,我正在尝试使用Plan.Name获取发票的说明。
非常感谢您的帮助!
答案 0 :(得分:1)
您应该使用 FirstOrDefault 而不是 Where :
Description = m.StripeInvoiceLineItems.Data.FirstOrDefault(i => i.InvoiceId == m.Id).Plan.Name;
的返回类型为 Quarryable ,并且在这些类型上使用 ToString()没有意义。