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();