シナリオ:C#でlinqを使用して複数レベルの深い広告申込情報を取得するにはどうすればよいですか?
クラス仕事は、複数のタスク Sを持つことができ、各タスクは、複数のチャージ Sを持つことができます。私がしたいことは、すべての特定の仕事のためにチャージのリストを取得することです。以下は私が現在これを解決するために使用しているコードです。しかし、私はそれが最良の可能な解決策ではないと感じています(ループが少ないためです)。誰も私はLinq /ラムダ式を使用してそれを行うことができます示唆していただけますか?ありがとう。
コード:
//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
});
}
}
}
}
}
}
感謝を。私は現在、あなたの提案された解決策を試しており、成功した場合は、それぞれの回答を**回答**とマークします。再度、感謝します。 –