Я пытаюсь выяснить, как выполнить подвыбор с использованием Linq. У меня есть лист excel с дебетом и столбцом «кредит». Мне нужно отфильтровать любые строки, у которых есть значение столбца дебета (> 0.00), которое больше соответствует значению столбца кредита. Обе строки должны иметь одинаковый идентификатор плательщика. Вот что я придумал до сих пор:Sub-Select Использование LinqToExcel
public void balanceSheet()
{
foreach (Payment payment in this.payments)
{
// c[6] is the payers ID.
var debits = from c in this.test.WorksheetNoHeader()
where c[6] != "0" && c[13] != "0.00"
select c;
// Find any rows in the sheet that have the same payer id AND the debit
// amount from the query above in it's credit column.
foreach(LinqToExcel.RowNoHeader debit in debits)
{
var credits = from c in this.test.WorksheetNoHeader()
where c[6] == debit[6] && c[15] == debit[13]
select c;
// Do something awesome if it finds something.
}
}
}
Я надеюсь, что есть способ более элегантное решение для выбора строк первенствовать по критериям выше, чем цикл через них каждый раз. Я не думаю, что я использую LINQ для его полного потенциала здесь любыми способами. Есть идеи?
Я бы тоже предложил это (как было сказано выше), но, возможно, вам следует определить дополнительную переменную для списка, а затем выполнить соединение, поскольку это может сохранить как память, так и время обработки. – jCoder