我正在尝试调试开发人员编写的代码,而LINQ表达式使任务很痛苦。我不知道如何调试复杂的LINQ表达式,所以谁能告诉我没有它们的等效代码是什么?
instanceIdList.AddRange(
strname.Instances
.Where(z => instancehealthList.Find(y => y.InstanceId == z.InstanceId
&& y.State == "InService") != null)
.Select(x => x.InstanceId)
.ToList()
.Select(instanceid => new ServerObj(servertype, instanceid))
);
还写得好吗?通常,这种LINQ是鼓励还是皱眉?
最佳答案
使用循环重构查询如下所示:
var serverObjList = new List<ServerObj>();
foreach (var inst in strname.Instances)
{
foreach (var health in instancehealthList)
{
if (inst.InstanceID == health.InstanceID && health.State == "InService")
{
serverObjList.Add(new ServerObj(servertype, health.InstanceID));
break;
}
}
}
关于c# - 使用循环转换此linq表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19059168/