我正在学习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
答案 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)