首页 >后端开发 >C++ >IEnumerable 集合可以像列表一样扩充吗?

IEnumerable 集合可以像列表一样扩充吗?

Patricia Arquette
Patricia Arquette原创
2025-01-02 17:58:42684浏览

Can IEnumerable Collections Be Augmented Like Lists?

IEnumerable 可以吗?集合可以像列表一样扩充吗?

IEnumerable;集合表示可能可变或不可变的元素序列。与列表不同,IEnumerable集合本身并不支持项目添加。

尝试将项目添加到 IEnumerable 时集合,例如在提供的示例中,它实际上效率很低。 ToList() 方法将 IEnumerable 转换为到 List,允许添加项目。然而,原始的 IEnumerable保持不变,导致集合中只有一个元素。

是否有 items.Add(item) 的替代方案?

不,没有直接等效项IEnumerable 中的 items.Add(item)。但是,您可以创建一个新的 IEnumerable其中包括原始项目和新项目。此技术依赖于 Enumerable.Concat 方法:

items = items.Concat(new[] { "foo" });

此方法创建一个不可变的 IEnumerable ;它包含了原始集合和添加项目中的所有元素。此外,它还确保未来对原始集合的任何更改都会反映在新的 IEnumerable 中。

以上是IEnumerable 集合可以像列表一样扩充吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn