使用Extension方法将项添加到IEnumerable集合的最佳方法是什么?
答案 0 :(得分:10)
enumerable.Concat(new[]{ objToAdd })
答案 1 :(得分:1)
你不能(直接)。接口的目的是公开枚举器。
编辑:您必须将IEnumerable转换为另一种类型(如List
)或要添加的连接,这将导致无法添加到现有IEnumerable
,但改为连接到新的IEnumerable
。
唯一的选择是测试它是否实现了任何可用于添加的接口,如IList,ICollection,IDictionary,ILookup ......,即便如此,您也无法确定是否可以添加到现有IEnumerable
。
答案 2 :(得分:0)
我在我的IEnumerableExtensions类中有这个,不确定它太高效了,但我很少使用非常。
public static IEnumerable<T> Add<T>(this IEnumerable<T> enumerable, T item)
{
var list = enumerable.ToList();
list.Add(item);
return list;
}