Pertanyaan Cara membuat daftar dari memfilter 2 daftar dengan linq ke objek


Saya ingin tahu apakah ada cara menggunakan Linq ke objek untuk mendapatkan daftar dari memfilter 2 daftar lainnya. Saya memiliki dua daftar objek A dan B, mereka saling terkait satu sama lain dengan sebuah atribut (Kode: String). B memiliki atribut lain, Nama: String.

Saya ingin mendapatkan daftar objek A yang memenuhi 2 ketentuan.

-Semua A objek harus sesuai dengan atribut A.Code mereka ke salah satu dari atribut B.Code dalam Daftar B.

-B.Nama harus = "yoda";

Saya mencoba dengan kode ini (dan contoh lain) tetapi tampaknya tidak bekerja dan saya tidak tahu mengapa. Saya baru memulai dengan linQ.

List<A> FilteredAList = (from OneA in ListOfA
                         join  OneB in ListOfB
                         on OneA.Code equals OneB.Code
                         where OneB.Name == "yoda"
                         select  OneA).ToList<A>();

Terima kasih sebelumnya!.


5
2017-08-12 00:13


asal


Jawaban:


Dengan kebutuhan Anda, saya pikir kita harus menggunakannya Any metode, oleh karena itu kita harus menulis method query tidak expression query. Tentu saja saya tidak tahu padanannya Any di expression query (Setidaknya seharusnya begitu pendek seperti dalam method query, jika tidak, itu tidak bagus). Jika ada yang tahu, silakan tinggalkan beberapa komentar. Terima kasih untuk itu.

var FilteredAList = ListOfA.Where(x=>ListOfB.Any(y=>x.Code==y.Code && y.Name=="yoda"))
                           .ToList<A>();

5
2017-08-12 00:20