using System.Collections.Generic;
public static void Main(string[] args)
var invoice = new Invoice
tInvoicePayments = new List<InvoicePayment>
tInvoicePayments = new List<InvoicePayment>
new InvoicePayment { InvoiceID = 1, Active = true },
new InvoicePayment { InvoiceID = 2, Active = true },
new InvoicePayment { InvoiceID = 3, Active = true },
new InvoicePayment { InvoiceID = 3, Active = false }
tInvoicePayments = new List<InvoicePayment>
new InvoicePayment { InvoiceID = 1, Active = true },
new InvoicePayment { InvoiceID = 1, Active = true },
var payments = invoice.tInvoicePayments.Select(x => x.tPayment);
var paymentsToDelete = payments
.Where(x => x.tInvoicePayments.All(y => y.Active && y.InvoiceID == invoice.InvoiceID))
foreach (var tPayment in paymentsToDelete)
Console.WriteLine(tPayment.PaymentID);
var newPaymentsToDelete = invoice.tInvoicePayments.Any(x => !x.Active)
: invoice.tInvoicePayments.Select(x => x.tPayment);
foreach (var tPayment in paymentsToDelete)
Console.WriteLine(tPayment.PaymentID);
public int InvoiceID { get; set; }
public List<InvoicePayment> tInvoicePayments { get; set; }
public int InvoiceID { get; set; }
public tPayment tPayment { get; set; }
public bool Active { get; set; }
public int PaymentID { get; set; }
public List<InvoicePayment> tInvoicePayments { get; set; }