Суммируйте повторяющиеся значения списка строк и объедините их с помощью linq в .net - PullRequest
0 голосов
/ 20 сентября 2019

В приведенном ниже коде я попытался суммировать строковое значение со значениями списка, это происходит, но другие значения не отображаются в ответ.Мне нужно суммировать значения, а другое значение должно быть возвращено объекту с помощью linq в vb.net.

Мой код:

Dim lstrTaxValue As String = "YQ$40"
Dim lstaValues As New List(Of String)
lstaValues.Add("YQ$10")
lstaValues.Add("TQ$3")
lstaValues.Add("PQ$8")
lstaValues.Add("YQ$10")
lstaValues.Add("TQ$3")
lstaValues.Add("AQ$5")

Dim lobjTValues = (From lstr In lstaValues
    From lval In lstrTaxValue.Split(" ")
    Where (lstr.Split("$")(0) = CStr(lval).Split("$")(0))
    Select (CStr(lval).Split("$")(0) & "$" & (CDbl(CStr(lval).Split("$")(1)) + CDbl(lstr.Split("$")(1))))).ToList()

Что я делаю не так?

1 Ответ

0 голосов
/ 21 сентября 2019

Цитировать Джона Скита ...

Изменить какое-либо значение в списке

В комментариях ...

ПочемуВы хотите использовать лямбда-выражения?Код foreach работает отлично и прост.LINQ предназначен для запроса данных, а не для их изменения.- Джон Скит

Ваша цель, похоже, не поддается Линку.

Private Sub OPCode()
    Dim lstrTaxValue As String = "YQ$40"
    Dim lstaValues As New List(Of String)
    lstaValues.Add("YQ$10")
    lstaValues.Add("TQ$3")
    lstaValues.Add("PQ$8")
    lstaValues.Add("YQ$10")
    lstaValues.Add("TQ$3")
    lstaValues.Add("AQ$5")
    Dim TaxValue = lstrTaxValue.Split("$"c)
    For i = 0 To lstaValues.Count - 1
        If lstaValues(i).Split("$"c)(0) = TaxValue(0) Then
            lstaValues(i) = TaxValue(0) & "$" & CStr(CDbl(lstaValues(i).Split("$"c)(1)) + CDbl(TaxValue(1)))
        End If
    Next
    For Each s In lstaValues
        Debug.Print(s)
    Next
End Sub

Результат:

YQ $ 50

TQ $ 3

PQ $ 8

YQ $ 50

TQ $ 3

AQ $ 5

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