Сценарий:Как получить несколько строк уровня с использованием linq в C#?
класс Работа может иметь несколько задач с и каждый Task может иметь несколько Charge с. Я хочу сделать, чтобы получить список всех Заряд s для любой конкретной работы. Ниже мой код, который я сейчас использую для решения этой проблемы. Но я чувствую, что это не лучшее возможное решение (потому что оно использует несколько циклов). Кто-нибудь может предложить, как я могу это сделать, используя выражение Linq/Lambda? Благодарю.
Код:
//Model Class
public class Job
{
public int id { set; get; }
public List<Task> Tasks { set; get; }
}
public class Task
{
public int id { set; get; }
public List<TaskCharge> TaskCharges { set; get; }
}
public class TaskCharge
{
public int id { set; get; }
public decimal Amount { set; get; }
public DateTime DateAdded { set; get; }
}
// Method to GetTransactions
public void GetTransactions()
{
var transactions = new List<Transaction>();
if (job.Tasks != null && job.Tasks.Any())
{
foreach (var task in job.Tasks)
{
if (task.TaskCharges != null && task.TaskCharges.Any())
{
foreach (var tc in task.TaskCharges)
{
if (tc.IsAccepted)
{
transactions.Add(new Transaction
{
//assign properties like below
//Description = tc.Description,
//TransactionAmount = tc.Amount
//and so on
});
}
}
}
}
}
}
Спасибо за ответы, ребята. В настоящее время я пытаюсь использовать ваши предлагаемые решения, и как только это удалось, будет отмечен соответствующий ответ как ** Ответ **. Еще раз спасибо. –