日期:2014-05-20  浏览次数:20825 次

linq 中 IN 如何实现?
我这样写哪里有问题呢?

相当于

SELECT * FROM listB WHERE value IN (SELECT * from listA) 



            List<string> listA = {"A","B","D"};

            List<B> listB = new List<B>();
            listB.Add(new B { value = "A", text = "A for text" });
            listB.Add(new B { value = "B", text = "B for text" });
            listB.Add(new B { value = "C", text = "C for text" });
            listB.Add(new B { value = "D", text = "D for text" });
            listB.Add(new B { value = "E", text = "E for text" });
            listB.Add(new B { value = "F", text = "F for text" });

            listB = listB.Where(k => listA.Contains(k.valueField));

------解决方案--------------------
var query = listA.SelectMany(x => listB.Where(y => y.value == x))
------解决方案--------------------
SELECT * FROM listB WHERE value IN (SELECT * from listA) 
这句话你能够在sql server中测试通过?