Linq滤过数组元素,很难解决的问题,快快快来看一看呀......

高彬 2012-08-09 05:55:27

现有如下的两个数组:

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

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

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

哈哈,想了好久也没有找到好办法,别用for之类的循环解决嚎,用LINQ !
...全文
87 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
高彬 2012-08-09
  • 打赏
  • 举报
回复
这两个都是对的。
string[] C = A.Where(a => B.All(b => !a.Contains(b))).ToArray();
string[] D = A.Where(a => !B.Any(b => a.Contains(b))).ToArray();
高彬 2012-08-09
  • 打赏
  • 举报
回复
嘻嘻,你终于写对了.....分都给你。
高彬 2012-08-09
  • 打赏
  • 举报
回复
五楼的快对了,还差一点,你是不是没有运行一下试试啊?
q107770540 2012-08-09
  • 打赏
  • 举报
回复
string[] C=A.Where(a=>!B.Any(b=>a.Contains(b))).ToArray();
高彬 2012-08-09
  • 打赏
  • 举报
回复
3楼理解错了,我的意思是A中的元素包含B中的元素,不是等于啊。
q107770540 2012-08-09
  • 打赏
  • 举报
回复
string[] C=A.Where(a=>!B.All(b=>a.Contains(b))).ToArray();
高彬 2012-08-09
  • 打赏
  • 举报
回复
我也这么写过,但是不对,你可以自己试一下。这样写体现出我们对Linq了解程度不够高。老兄,继续加油啊。
q107770540 2012-08-09
  • 打赏
  • 举报
回复
string[] A = { "本期|销量", "本期|成本", "本期|佣金"};
string[] B = { "成本"};
string[] C=A.Where(a=>!B.Contains(a)).ToArray();
ParanoidKing 2012-08-09
  • 打赏
  • 举报
回复

string[] C = (
from a in A
from b in B
where !a.Contains(b)
select a
).ToArray();
高彬 2012-08-09
  • 打赏
  • 举报
回复
有回答对的,可以加分嚎.........

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧