gpt4 book ai didi

c# - 避免在 C# 中调用多个函数

转载 作者:IT王子 更新时间:2023-10-29 04:29:20 26 4
gpt4 key购买 nike

目前正在用 C# 编写代码,我想知道是否有一种方法可以分解代码,如下所示

Entity1 = GetByName("EntityName1");
Entity2 = GetByName("EntityName2");
Entity3 = GetByName("EntityName3");

想法是在代码中进行一次调用,通过将 entitiesstrings 放在一个容器中分解代码,并在该容器上迭代以获取单个“GetByName()”行。有办法做到这一点吗?

最佳答案

您可以使用 LINQ:

var names=new[]{"EntityName1","EntityName2","EntityName3",.....};
var entities=names.Select(name=>GetByName(name)).ToArray();

没有ToArray , Select将返回一个 IEnumerable,每次您枚举它时都会重新评估它 - 即 GetByName每次枚举可枚举时都会被调用。

ToArray()ToList将创建一个可以多次使用的数组(或列表)。

您也可以调用ToDictionary如果您希望能够按名称访问实体:

var entities=names.ToDictionary(name=>name,name=>GetByName(name));

所有这些都假设实体不存在或者 GetByName必须做一些重要的工作来检索它们。如果实体存在,您只需将它们放在 Dictionary<String,Entity> 中即可。 .如果实体有 Name您可以使用的属性(property) ToDictionary在一条语句中创建字典:

var entities=new []{entity1,entity2,entity3,...};
var entitiesDict=entities.ToDictionary(entity=>entity.Name,entity=>entity);

关于c# - 避免在 C# 中调用多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com