将Method参数作为List发送而不实例化新List

时间:2012-10-04 16:02:06

标签: c# methods parameters parameter-passing overloading

假设我有一个方法:

 UpdateObject(IList<MyObject> objs)

我想使用该方法只发送一个对象? (我不喜欢使用方法重载,因为我不想在我的界面中处理很多方法)

有没有办法可以使用相同的方法而不执行以下操作:

UpdateObject(new List<MyObject>(){singleObj})

1 个答案:

答案 0 :(得分:3)

也许您可以将IEnumerable<MyObject>传递给该方法。

将单个元素附加到IEnumerable<T>的最简单方法可能是使用此AsIEnumerable扩展名(尽管Eric Lippert advises against为对象创建扩展名):

public static IEnumerable<T> AsIEnumerable<T>(this T obj)
{
    yield return obj;
} 

现在您可以将所有内容都用作IEnumerable

UpdateObject(singleObj.AsIEnumerable())