C#AddItem的扩展方法为IEnumerable <t> </t>

时间:2010-07-06 10:15:51

标签: c# collections

使用Extension方法将项添加到IEnumerable集合的最佳方法是什么?

3 个答案:

答案 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;
}