Управление списком в использовании C# Linq

Это потому, что вкладка - это именование контейнера, а ваше обновление должно быть update="Search:insTable:display". Что вы можете сделать, просто разместите свое диалоговое окно вне формы и все еще внутри вкладки, тогда оно будет: update="Search:display"

28
задан tvanfosson 12 December 2008 в 04:52
поделиться

7 ответов

Все сказанный leppie - плюс:

int index = mylist.FindIndex(p => p.id == 1);
if(index<0) {
    mylist.Add(car3);
} else {
    mylist[index] = car3;
}

Это просто использует существующий FindIndex, чтобы определить местоположение автомобиля с идентификатором 1, затем заменить или добавить его. Никакой LINQ; никакой SQL - просто лямбда и List<T>.

53
ответ дан Marc Gravell 14 October 2019 в 09:48
поделиться

Если Вы хотели сделать обновление нескольких элементов...

foreach (var f in mylist.FindAll(x => x.id == 1))  
{    
    f.id = car3.id;  
    f.color = car3.color;  
    f.make = car3.make;  
}  
9
ответ дан Joel Meador 14 October 2019 в 09:48
поделиться

Это не LINQ2SQL.

кроме того, LINQ не используется для обновления, только для запросов для объектов.

8
ответ дан leppie 14 October 2019 в 09:48
поделиться

Можно использовать этот путь:

(from car in mylist
where car.id == 1
select car).Update(
car => car.id = 3);

Моя ссылка этот веб-сайт . Или следующее является кодом для метода Обновления

public static void Update<T>(this IEnumerable<T> source, params Action<T>[] updates)
{
    if (source == null)
        throw new ArgumentNullException("source");

    if (updates == null)
        throw new ArgumentNullException("updates");

    foreach (T item in source)
    {
        foreach (Action<T> update in updates)
        {
            update(item);
        }
    }
}
6
ответ дан Funky81 14 October 2019 в 09:48
поделиться

Как сказанный Leppie, LINQ для запросов вместо обновления. Однако это может использоваться для создания нового списка:

mylist = new List<Car>(from car in mylist select car.id == 1? car3 : car)

Это - то, если Вы хотите использовать LINQ. Это хорошо и короткий код, конечно, но немного менее эффективно, чем предложение Marc Gravell, поскольку это эффективно создает новый список, вместо того, чтобы обновить старый.

2
ответ дан jalf 14 October 2019 в 09:48
поделиться
//Item class
Class Item
{
   public string Name { get; set; }
}

List < Item > myList = new List< Item >()

//Add item to list
Item item = new Item();
item.Name = "Name";

myList.Add(Item);

//Find the item with the name prop

Item item2 = myList.Find(x => x.Name == "Name");

if(item2 != null)
   item.Name = "Changed";
2
ответ дан 28 November 2019 в 02:32
поделиться

Только один вопрос, почему я должен писать функцию Update для чего-то, что кажется таким простым для списка? Для списков должны быть стандартные методы Add(), Delete(), Edit(), Insert(), Replace() ....Find()

1
ответ дан 28 November 2019 в 02:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: