Я новичок в LINQ. Пожалуйста, ознакомьтесь с приведенным ниже кодом:LINQ - ВЫБРАТЬ некоторые столбцы
Public Class Person
Public Name As String
Public Address As String
Public Age As String
End Class
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
Dim p1 As New Person
Dim p2 As New Person
Dim p3 As New Person
p1.Name = "Ian"
p1.Age = 32
p1.Address = "8 street"
p2.Name = "Fred"
p2.Age = 62
p2.Address = "5 road"
p3.Name = "Bernie"
p3.Age = 59
p3.Address = "5 road"
Dim list As New List(Of Person)
list.Add(p1)
list.Add(p2)
list.Add(p3)
Dim test As IEnumerable(Of Person) = From p In list
Where p.Name = "Ian"
Select p.Name, p.Age
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
Как бы я прошел через тест в его нынешнем виде?
Я знаю, что я мог бы сделать что-то вроде этого:
Dim test As IEnumerable(Of Person) = From p In list
Where p.Name = "Ian"
Select p
Dim List2 As List(Of Person) = test.ToList
Однако то, что точка ЗЕЬЕСТА, как на этом основании можно выбрать только полные объекты.
Спасибо. Неплохо ли использовать анонимные типы? +1. – w0051977
Нет, все в порядке. Просто имейте в виду, что вы не можете вернуть анонимный тип или передать его подпрограмме, поэтому это полезно только в вашем текущем методе. Тип возврата не обязательно должен быть анонимным, кстати: 'Select New SomeClassOfMine (p.Name, p.Age)' отлично. – Heinzi
Я думаю, вы можете вернуть список лиц с уровня доступа к данным, а затем использовать аномальные типы на бизнес-уровне по мере необходимости? – w0051977