[英]How to write better code for several for each loops in c# / ASP.NET / EF Core
我想知道如何編寫比下面更好的代碼。 它有效,但我認為必須有更好的方法來編寫它。 也許有一些 Lambda 表達式?
`
var dataList = new List<MyModel>();
foreach (var data in dataArray)
{
var model = new MyModel();
model.Name = data.Name;
model.LastName = data.LastName;
model.Model = "";
model.SubModel = "";
if (data.Cars.Any())
{
foreach (var car in data.Cars)
{
model = new MyModel();
model.Name = data.Name;
model.LastName = data.LastName;
model.Model = car.Model;
model.SubModel = "";
if (car.SubModels.Any())
{
foreach (var subModel in car.SubModels)
{
model = new MyModel();
model.Name = data.Name;
model.LastName = data.LastName;
model.Model = car.Model;
model.SubModel = subModel.Model;
dataList.Add(model);
}
}
else
{
dataList.Add(model);
}
}
}
else
{
dataList.Add(model);
}
}
`
試圖在 VS 中將其轉換為 Lync
偽代碼未測試。 您還需要三個構造函數來創建模型類。 或者你用 property init 來做:
new Model() { Name = data.Name,
LastName = data.LastName, Model = car.Model, SubModel = subModel.Model}
var dataList = dataArray
.Select(item => item.Cars)
.Select(car => new Model(data.Name,data.LastName,car.Model,subModel.Model))
.Concat(item => item.SubModel
.Select(subModel => new Model(data.Name,data.LastName,car.Model,subModel.Model,subModel.Model)))
.Concat(dataArray.Select(data => new Model(data.Name,data.LastName)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.