在 C# 中,IEnumerable 是一个表示可枚举集合的接口,它只提供了一个用于迭代集合元素的方法 GetEnumerator()。由于 IEnumerable 是只读的,我们不能直接向其添加或删除元素。但是,我们可以通过实现另一个接口 ICollection 来使其支持添加操作。
以下是向一个 IEnumerable 类型的集合中添加元素的两种方法:
方法一:将 IEnumerable 转换为 List
我们可以使用 ToList() 方法将 IEnumerable 集合转换为 List 类型的集合,然后在 List 中添加元素。最后再将 List 转换回 IEnumerable 类型的集合即可。
IEnumerable<int> enumerable = new List<int> { 1, 2, 3 };
List<int> list = enumerable.ToList();
list.Add(4);
enumerable = list;
方法二:使用 yield return 添加元素
我们可以在一个新的方法中使用 yield return 语句来生成新的元素并添加到原始的 IEnumerable 集合中。
static IEnumerable<int> AddElement(IEnumerable<int> enumerable, int elementToAdd)
foreach (int item in enumerable)
yield return item;
yield return elementToAdd;
IEnumerable<int> enumerable = new List<int> { 1, 2, 3 };
enumerable = AddElement(enumerable, 4);
这两种方法都可以用于向 IEnumerable 集合中添加元素。需要根据具体情况选择使用哪种方法。