【发布时间】:2019-02-05 01:36:03
【问题描述】:
前3行代码有没有短版:
foreach (var el in craftSystem.requiredItems)
{
var type = el.Key;
var count = el.Value;
var itemDefinition = ItemManager.GetItemDefinition(type);
var go = Instantiate(prefab, root);
var line = go.GetComponent<UICraftItemRequirementLine>();
line.SetItem(itemDefinition, count);
}
在上面的示例中设置合适的变量名称,如类型、计数。
我知道代码看起来不错且可读,并且可以更简单,因为我只使用一次变量。但我需要知道如何将它放在一行中(见答案)。
【问题讨论】:
-
为此使用
List -
你想达到什么目的?您是指循环内的三行吗?
-
您似乎只使用了这些“帮助”变量一次,那么为什么不只使用
var itemDefinition = ItemManager.GetItemDefinition(el.Key);和line.SetItem(itemDefinition, el.Value);? -- 甚至可能是var line = Instantiate(prefab, root).GetComponent<UICraftItemRequirementLine>();--- 如果你真的 想要“保存线条”......但现在就是这样。它看起来很可读,那么为什么要改变它呢? -- 它现在更具可读性因为它有好几行了。 -
是的,但是 LINQ 不会为你做这些。 LINQ 只能从您的输入中选择数据,它不会更改输入。使用
List.Foreach更改您的输入顺序
标签: c# linq syntactic-sugar