Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список пар<int, string>, Проблема с модификацией 
:(
    Опции темы
Competitor
Дата 3.11.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: -1
Всего: -1



У меня есть список list1, состоящий из пар следующего вида:
Код

List<Pair<int, String>> list1;
public struct Pair<T1, T2>
        {
            public T1 num;
            public T2 url;
            public T2 source;
            public Pair(T1 Num, T2 Url, T2 Source)
            {
                num = Num;
                url = Url;
                source = Source;
            }
            public override string ToString()
            {
                return url.ToString();
            }
        }

При модификации значений, например так:
Код

list1[i].num += 20;

вылетает ошибка:
Cannot modify the return value of 'System.Collections.Generic.List<MyApp1.MyClass1.Pair<int,string>>.this[int]' because it is not a variable
Как можно попроще модифицировать элемент, чтобы не было ошибки?
Вариант типа:
Код

                string temp1 = ((Pair<int, String>)list1[i]).url;
                string temp2 = ((Pair<int, String>)list1[i]).source;
                int tempNum = ((Pair<int, String>)list1[i]).num;
                list1.RemoveAt(i);
                list1.Insert(i, new Pair<int, String>(tempNum, temp1, temp2));

слишком сложный.
PM MAIL WWW   Вверх
mr.DUDA
Дата 3.11.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Замени struct Pair на class Pair, и всё заработает. Структуры возвращаются индексатором by-value, поэтому и ошибка.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.