-1

The below code I tried to sum up the string value with the list values, it happens, but other values are not shown in return. I need to sum the values and other value should be returned to the object using linq in vb.net.

My code:

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()

What am I doing wrong?

Kate Orlova
  • 3,225
  • 5
  • 11
  • 35
Naresh
  • 1
  • 2

1 Answers1

0

To quote Jon Skeet...

Change some value inside the List<T>

In comments...

Why do you want to use lambda expressions? The foreach code works fine and is simple. LINQ is for querying data, not mutating it. – Jon Skeet

Your objective does not seem to lend itself to 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

Result:

YQ$50

TQ$3

PQ$8

YQ$50

TQ$3

AQ$5

Mary
  • 14,926
  • 3
  • 18
  • 27