如何从列表数组(linq 列表)C# 中的所有元素调用方法

Posted

技术标签:

【中文标题】如何从列表数组(linq 列表)C# 中的所有元素调用方法【英文标题】:How can I call method from all elements in list array (linq list) C# 【发布时间】:2021-07-06 23:47:06 【问题描述】:

我有一个清单:

private List<OutlinedObject> allObjects = new List<OutlinedObject>();

包含具有公共方法的元素

Pulse(string a, int b) 

我想从数组中的所有元素中调用方法而不是迭代。我觉得应该是这样的,但是不行:

allObjects.Pulse("prop", 10);

我可以在 C# 中执行此操作吗? 不使用委托是否可以做到这一点?

【问题讨论】:

你想同时给他们打电话吗? @Andre.Santarosa 是的(如果可能的话) 【参考方案1】:

如果我理解正确,您可以使用List&lt;T&gt;.ForEach(实际上只是按顺序迭代执行相应操作的集合):

allObjects.ForEach(i => i.Pulse("prop", 10));

如果你想并行运行它们,你可以使用AsParallel(使用WithDegreeOfParallelism来控制并行执行的数量):

allObjects.AsParallel().ForAll(i => i.Pulse("prop", 10))

【讨论】:

以上是关于如何从列表数组(linq 列表)C# 中的所有元素调用方法的主要内容,如果未能解决你的问题,请参考以下文章

Linq 接口列表,接口有成员字符串数组,我想要 linq 语句聚合对象数组中的所有字符串

如何从 C# 中的元组列表中获取最接近“a”的 4 个元素?

C# LINQ 从字符串数组列表中选择

C# LINQ 从数组/列表中不包含值的位置选择

C# LINQ 在列表中查找重复项

用于检查字符串列表/数组中的字符串的 C# 最佳实践 (LINQ) [关闭]