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

Linq滤过数组元素,很难解决的问题,快快快来看一看呀......
     
现有如下的两个数组:

   string[] A = {  "本期|销量", "本期|成本", "本期|佣金"};
   string[] B = { "成本"};

请问,如何用Linq查出数组A中的元素不包含数组B中元素的所有项。

我想要的返回结果是:"本期|销量","本期|佣金"。

哈哈,想了好久也没有找到好办法,别用for之类的循环解决嚎,用LINQ !
------最佳解决方案--------------------
我也这么写过,但是不对,你可以自己试一下。这样写体现出我们对Linq了解程度不够高。老兄,继续加油啊。
------其他解决方案--------------------

            string[] C = (
                from a in A
                from b in B
                where !a.Contains(b)
                select a
                ).ToArray();

------其他解决方案--------------------
有回答对的,可以加分嚎.........
------其他解决方案--------------------
string[] A = { "本期
------其他解决方案--------------------
销量", "本期
------其他解决方案--------------------
成本", "本期
------其他解决方案--------------------
佣金"};
  string[] B = { "成本"};
string[] C=A.Where(a=>!B.Contains(a)).ToArray();
------其他解决方案--------------------
string[] C=A.Where(a=>!B.All(b=>a.Contains(b))).ToArray();
------其他解决方案--------------------
3楼理解错了,我的意思是A中的元素包含B中的元素,不是等于啊。
------其他解决方案--------------------
string[] C=A.Where(a=>!B.Any(b=>a.Contains(b))).ToArray();