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中文网其他相关文章!