|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
допустим есть переменная Код: c# 1.
Можно ли, имея переменную int i = 5, в class1_collection найти Class2.PK = 5,и обновить Class2.name = "5", к примеру? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 16:44 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
Что-то типа такого Код: c# 1. 2. 3. 4. 5. 6. 7.
Если не хотите преобразовывать к списку, то определяете свой собственный форич-метод для енумераблов: http://stackoverflow.com/a/823563 . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 22:07 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
Erik_Kartmann, паттерн Registry? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 01:00 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
сенк. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 10:18 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
user7320 Код: c# 1.
Жесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 12:08 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
skyANAErik_Kartmann, паттерн Registry? Какой еще паттерн, человеку нужно по условию найти элемент(ы) и обновить их. Жжешь... Код: c# 1.
Если элементов несколько, обычный foreach. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 12:32 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
МСУuser7320 Код: c# 1.
Жесть. 5.ToString() радует глаз больше всего ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 13:36 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
МСУ5.ToString() радует глаз больше всего паттернизация головного мозга ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 14:23 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
МСУskyANAErik_Kartmann, паттерн Registry? Какой еще паттерн...Классический. На фига бегать по вложенным коллекциям, если можно взть по ключу из Registry и поменять? Но если обхода вложенных коллекций достаточно, то я не настаиваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 14:25 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
skyANAНа фига бегать по вложенным коллекциям, если можно взть по ключу из Registry и поменять? Я не понимаю, зачем какие-то усложнения для такой элементарной задачи. Особенно, учитывая факт, что в реальной жизни поиск может быть не только по ключу. И это с нынешними-то возможностями LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 14:34 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
МСУ, написано "найти Class2.PK = 5". Вот я и подумал, что надо быстро найти элемент именно по ключу. А учитывая фразу "допустим есть переменная", можно предположить, что у ТС есть ещё 100500 подобных "переменных", где надо "найти Class2.PK = 5". И вообще я ТС свой вопрос адресовал. Он не ответил. Видимо не нужен ему Registry. Так что успокойся. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 14:55 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
не.. не нужен уже:) зы: переменная одна. PK - уникален для всего class1_collection. Но можете дальше общаться. Для гугла полезно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 14:59 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
МСУ Код: c# 1.
Ну, если pk уникален, как ТС казал, то тогда Сингле. В противном случае - Вере. Согласны? А ТуСтринг я делаю, чтобы не возникало вопросов "а чего это строку с числом сравнивают?". Хотя, наверное, лучше было написать пятёрку в кавычках. Я вообще, если не лень, стараюсь явно приводить типы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 17:07 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
Ой, сори. Не в ту вкладку запостил! А как обратно? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 17:08 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
user7320Ну, если pk уникален, как ТС казал, то тогда Сингле. В противном случае - Вере. Согласны? Не согласен. У тебя лишняя трудозатратная операция ToList. List<T>.ForEach нужно использовать с умом - то есть только в тех случаях, когда имеем дело именно с List<T>. user7320Хотя, наверное, лучше было написать пятёрку в кавычках. Именно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 17:15 |
|
обновить элемент в коллекции
|
|||
---|---|---|---|
#18+
МСУuser7320Ну, если pk уникален, как ТС казал, то тогда Сингле. В противном случае - Вере. Согласны? Не согласен. У тебя лишняя трудозатратная операция ToList. List<T>.ForEach нужно использовать с умом - то есть только в тех случаях, когда имеем дело именно с List<T>. У меня соображения были такие - пройтись форичем по всей коллекции ТС, затем для каждого элемента вложенной коллекции выбрать своё подмножество удовлетворяющих условию элементов (А). Затем применить к каждому элементу из найденного подмножества метод без возврата (Б). Для А - Where, для Б - ForEach с Action. Но т. к. во фреймворке нет встроенного расширяющего ForEach, кроме как для списка, и чтобы не прерывать красивую последовательность вызова методов, привёл к списку (всё равно это не создаст значительных дополнительных расходов - все элементы и полученной, и начальной коллекции будут ссылаться на одни и те же объекты (т. к. они cached ), разве что придётся создать новые ссылки... согласен, при большой коллеции может быть трудозатратно). А вообще, я вижу несколько вариантов: 1. Как я выше описал. 2. Через вложенный foreach. 3. Через определение своего расширяюего метода ForEach для IEnumerable (что Скит предложил). Самый простой - 2. Ваши варианты для неуникального pk? И да, а почему в вашем варианте Single, а не First или FirstOrDefault? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 19:22 |
|
|
start [/forum/topic.php?fid=20&msg=38288099&tid=1404549]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 364ms |
total: | 533ms |
0 / 0 |