The code you provided does not compile because you are trying to assign a sequence of a sequence of lines (each top-level sequence coming from a certain expense) to a link that expects a sequence of lines.
, , , ? , .
var debtors = CurrentExpenses.Where(expense => expense.WhoPaid == username)
.Select(expense => expense.WhoOwes)
.SelectMany(debtors => debtors)
.Distinct();
( SelectMany ).
, :
var debtors = (from expense in CurrentExpenses
where expense.WhoPaid == username
from debtor in expense.WhoOwes
select debtor).Distinct();
, , :
var expensesPaidByUser = CurrentExpenses.Where(expense => expense.WhoPaid == username);
, , Expense, , , ; , .
, , , :
var debtorsByExpense = CurrentExpenses.Where(expense => expense.WhoPaid == username)
.Select(expense => new { Expense = expense, Debtors = expense.WhoOwes });