我有以下 C# 列表代码,
globalFaiths.AddAll( IEnumerable<Religion> religions )
我这样称呼它
globalFaiths.AddAll(new Religion[]{Bahai,Christian,Islam});
有没有更好的方法来发送到c#Bahai,Christian,Islam
中的函数?globalFaiths
我有以下 C# 列表代码,
globalFaiths.AddAll( IEnumerable<Religion> religions )
我这样称呼它
globalFaiths.AddAll(new Religion[]{Bahai,Christian,Islam});
有没有更好的方法来发送到c#Bahai,Christian,Islam
中的函数?globalFaiths
您可以使用:
globalFaiths.AddAll(new[]{Bahai,Christian,Islam});
如果您将方法更改为使用params 关键字和数组,如下所示:
AddAll(params Religion[] religions)
然后你可以直接调用它:
globalFaiths.AddAll(Bahai,Christian,Islam);
但是,这需要更改集合类(globalFaiths
的类型)的 API。如果可以选择更改这部分代码,您可能还需要考虑使用AddRange
而不是AddAll
,因为这将更接近框架(即:)List<T>.AddRange
。
你可以像这样改变你的方法:
public void AddAll(params Religion[] religions)
{
// ...
}
你可以这样使用它:
globalFaiths.AddAll(Bahai, Christian, Islam);
顺便说一句:如果您要进行此更改,最好将方法命名为Add
,因为也可以只通过一种宗教。
如果您无法更改代码,则另一种选择是扩展方法:
public static void Add(this Faiths faiths, params Religion[] religions)
{
faiths.AddAll(religions);
}
当然,如果您只在代码中调用该方法一次或两次,这可能有点矫枉过正。
如果您可以更改AddAll
方法,则可以执行以下操作:
AddAll(params Religion[] religions)
而不是添加这样的项目:
globalFaiths.AddAll(Bahai,Christian,Islam);