Tôi có một lớp học như sau:Tôi chỉ không hiểu làm thế nào để sử dụng LINQ
Class Scan
Delivered As Boolean
ScanDate As Date
State As String
Facility As String
End Class
sau đó tôi có thể tạo một danh sách và đưa vào đó quét có chứa bất cứ điều gì.
Dim Scans As New List(Of Scan)
Tôi cần khai thác danh sách để nhận nhiều thông tin khác nhau. Tôi muốn sử dụng LINQ để làm điều đó. Vấn đề là vì cuộc sống của tôi, tôi không hiểu. Cú pháp ném tôi ra, thực tế là các kết quả không được đánh mạnh mẽ ném tôi đi, và các mẫu trên web là quá đơn giản, hoặc quá phức tạp.
Làm sao tôi
- Có được tổng số quét, nhóm lại theo ngày nơi Delivered = True
- Có được tổng số quét, nhóm lại theo sở nơi Delivered = True
- Có được tổng số quét , được nhóm theo Tiểu bang nơi Phân phối = Đúng
Tôi sau đó muốn sử dụng điều này trong vòng lặp Cho mỗi.
For Each result In GroupedResults
‘My Code
Next
Lý tưởng nhất, tôi muốn kết quả được nhập mạnh mẽ. Điều này có thể không?
Có ai có thể giới thiệu một số liên kết để bắt đầu với điều này không? Mỗi trang web tôi đi qua chỉ được bơi đầu của tôi. Tôi không hiểu gì cả.
EDIT:
Cảm ơn bạn rất nhiều chàng trai. Tôi vẫn đang gãi đầu về công cụ này, nhưng ít nhất đây là một ví dụ thế giới thực mà tôi có thể sử dụng để có được một ý tưởng về những gì đang xảy ra.
Tôi đã hy vọng rằng ví dụ đơn giản này sẽ giúp tôi hội đồng quản trị mùa xuân thành một sử dụng phức tạp hơn - không may mắn được nêu ra. Tôi nên hỏi điều này.
Tất cả các ví dụ dường như sử dụng phản hồi khóa/giá trị. Nếu tôi có hai giá trị tôi cần được nhóm lại thì sao?
Class Scan
Delivered As Boolean
Scanned As Boolean
ScanDate As Date
State As String
Facility As String
End Class
1. Get a count of Delivered = True, a count of Scanned=True, grouped by Date
2. Get a count of Delivered = True, a count of Scanned=True, grouped by Facility
3. Get a count of Delivered = True, a count of Scanned=True, grouped by State
Có thể nhận kết quả này trong một kết quả không?
Chỉnh sửa Edit:
đáp Chỉnh sửa của riêng tôi! Điều này có vẻ phù hợp với tôi:
Dim query = From r In scans _
Group r By r.ScanDate Into g = Group _
Select New With _
{g, .DeliveredCount = g.Count(Function(s) s.Delivered), .ScannedCount = g.Count(Function(s) s.Scanned)}
Cảm ơn bạn rất nhiều bạn. Bạn đã cho tôi đến mức mà tôi có thể hack một giải pháp. Tôi vẫn không "nhận được" những gì tôi đang làm (Chức năng là gì?), Nhưng tôi đã có một cái gì đó để bắt đầu. Tôi dự định dành thời gian để học điều này ngay bây giờ. Tôi nghĩ những gì thực sự đã ném tôi ra là các mẫu trên mạng là C#. Normaly Tôi không có vấn đề chuyển đổi cú pháp, nhưng với LINQ này không phải là đơn giản. Tôi nghĩ rằng tôi đã làm điều gì đó sai, nhưng nó chỉ là cú pháp rất khác nhau.
Bạn có muốn đếm riêng cho mỗi ngày phân phối không? Vì vậy, kết quả của bạn sẽ là: 3 đã được giao vào ngày X, 6 đã được gửi vào ngày Y ... vv Đây có phải là những gì bạn đang tìm kiếm không? –
Điều gì khiến bạn nghĩ rằng kết quả không được đánh máy mạnh? –
Chúng được nhập mạnh mẽ. Nếu bạn chỉ cần chạy một truy vấn vani (từ s như Scan select s) nó sẽ không được cast như là một quét, nhưng bạn chỉ có thể nhanh chóng sử dụng CType để làm như vậy. –