Метод расширения C #, избавиться от ключевого слова ref - PullRequest
0 голосов
/ 14 ноября 2010

Я написал небольшой метод расширения, чтобы добавить значение в начало списка.

Вот код;

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 ]

6 голосов
/ 14 ноября 2010

Вы можете просто позвонить currentList.Insert(0, itemValue);, чтобы вставить в начало.

Edit:

Примечание - этот код изменит экземпляр списка, тогда как оригинальный код оставил список без изменений и создал новый список с дополнительными данными, вставленными в начале.

4 голосов
/ 14 ноября 2010
public static void AddBeginning<T>(this List<T> currentList, T itemValue)
{
    currentList.Insert(0, itemValue);
}

Это действительно помогает читать документы для класса, который вы используете.

Кроме того, я бы предложил просто использовать Insert вместо этого метода расширения..

0 голосов
/ 14 ноября 2010

Используйте метод List Insert и укажите индекс, который вы хотите, чтобы новое значение (0) было добавлено в?

...