C#扩展方法,摆脱ref关键字

时间:2010-11-14 08:31:36

标签: c# extension-methods

我编写了一个小扩展方法,将值添加到List的开头。

这是代码;

public static class ExtensionMethods
{
    public static void AddBeginning<T>(this List<T> item, T itemValue, ref List<T> currentList)
    {
        List<T> tempList = new List<T> {itemValue};
        tempList.AddRange(currentList);
        currentList = tempList;
    }
}

因此我可以将值添加到列表的开头,我必须使用ref关键字。

有人建议必须修改这个扩展方法来摆脱ref关键字吗?

3 个答案:

答案 0 :(得分:6)

您只需拨打currentList.Insert(0, itemValue);即可插入开头。

修改

注意 - 此代码将修改列表实例,而原始代码将列表保持原样并生成一个新列表,其中包含在开头插入的附加数据。

答案 1 :(得分:4)

public static void AddBeginning<T>(this List<T> currentList, T itemValue)
{
    currentList.Insert(0, itemValue);
}

真的有助于阅读您正在使用的课程的文档。

另外,我建议直接使用Insert,而不是使用此扩展方法。

答案 2 :(得分:0)

使用List Insert method并提供您想要添加新值(0)的索引?