如何使用LINQ Query更新列值

时间:2017-08-22 16:12:52

标签: vb.net linq

我正在学习LINQ查询,我想使用LINQ Query更新一个列值,有人可以指导我,下面就是我的内容。

[Required]
[RegularExpression(@"[^\s]+", ErrorMessage = "*")]
public string id { get; set; }

但我想用LINQ来实现它。

这样的东西
Dim dtMytable As New Strongly_TypedTable
dtMytable.Merge(Contact.LoadContact(User, lstIds))
For Each r In dtMytable 
       r.id = ' Some Args.Value
Next

2 个答案:

答案 0 :(得分:0)

如果您的更新只针对少数几列,则可以使用以下方法。

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 Dim dt As New DataTable("tblEntTable")
 dt.Columns.Add("ID", GetType(String))
 dt.Columns.Add("Amount", GetType(Decimal))
 dt.Rows.Add(New Object() {"1", 100.51})
 dt.Rows.Add(New Object() {"2", 200.52})
 dt.Rows.Add(New Object() {"3", 500.24})
 dt.Rows.Add(New Object() {"4", 400.31})
 dt.Rows.Add(New Object() {"5", 600.88})
 dt.Rows.Add(New Object() {"6", 700.11})

 MethodSyntax(dt)
 'QuerySyntax(dt)
End Sub

Sub MethodSyntax(ByVal dt As DataTable)
 Array.ForEach(dt.AsEnumerable().ToArray(), Sub(row) row("Amount") = 900.23)
 DataGridView1.DataSource = dt
End Sub

Sub QuerySyntax(ByVal dt As DataTable)
 Dim result = From row In dt.AsEnumerable()
     Select New With { _
     .ID = row.Field(Of String)("ID"), _
     .Amount = 800
     }

 DataGridView1.DataSource = result.ToList()
End Sub

答案 1 :(得分:-1)

使用Foreach linq扩展

dtMytable.AsEnumerable().ForEach(Sub(obj) obj.Field<int>("id") = New value)