Как мне выполнить операцию присваивания в лямбда-выражении - PullRequest
1 голос
/ 25 октября 2010

У меня есть список элементов и я хочу установить для одного из их свойств определенное значение:

applist.ForEach(Function(x) x.PrePaidTypeID = CInt(DBEnums.PrePaidType.NoPrepay))

... но мы думаем, что это просто логическое сравнение.Есть ли способ заставить VB назначить целочисленное значение, а не сравнивать его?

Ответы [ 2 ]

3 голосов
/ 25 октября 2010

Использование Sub lambda вместо Function lambda будет работать.Как вы заметили, только в VS2010 вы получаете lamba Sub.

Другое решение - использовать многострочную лямбду.Это тоже работает только в VS2010.: (

http://msdn.microsoft.com/en-us/library/bb531253.aspx

1 голос
/ 25 октября 2010

Мы используем VB .NET 9, который, кажется, проблема здесь.В VB .NET 10 вы можете делать следующее, что в соответствии с Google работает:

applist.ForEach(Sub(x) x.PrePaidTypeID = CInt(DBEnums.PrePaidType.NoPrepay))

Использование ключевого слова Sub означает, что ему не нужно возвращать значение, чтобы вы могли его назначить.

Похоже, наше решение - обновить проект или использовать обычный цикл For Each.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...