Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将方法参数作为列表发送,而不实例化新列表_C#_Methods_Parameters_Parameter Passing_Overloading - Fatal编程技术网

C# 将方法参数作为列表发送,而不实例化新列表

C# 将方法参数作为列表发送,而不实例化新列表,c#,methods,parameters,parameter-passing,overloading,C#,Methods,Parameters,Parameter Passing,Overloading,假设我有一个方法: UpdateObject(IList<MyObject> objs) UpdateObject(IList objs) 我想用这个方法只发送一个对象?(我不喜欢使用方法重载,因为我不想在接口中处理很多方法) 是否有一种方法可以使用相同的方法而不执行以下操作: UpdateObject(new List<MyObject>(){singleObj}) UpdateObject(新列表(){singleObj}) 也许您可以将一个IEnumerab

假设我有一个方法:

 UpdateObject(IList<MyObject> objs)
UpdateObject(IList objs)
我想用这个方法只发送一个对象?(我不喜欢使用方法重载,因为我不想在接口中处理很多方法)

是否有一种方法可以使用相同的方法而不执行以下操作:

UpdateObject(new List<MyObject>(){singleObj})
UpdateObject(新列表(){singleObj})

也许您可以将一个
IEnumerable
传递给该方法

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


您在接口上调用此方法的频率可能比实现此方法的频率更高。添加额外重载的成本可能比调用方的任何更改(在所有实例中聚合时)都要便宜。
public static IEnumerable<T> AsIEnumerable<T>(this T obj)
{
    yield return obj;
} 
UpdateObject(singleObj.AsIEnumerable())