使用linq和c#

时间:2014-03-14 10:02:34

标签: c# linq

我之前从未使用过linq,但想在我的代码中开始使用它。

我有2个字符串数组。

 string[] allFruits = allFruitTextHiddenBox.Text.Value.Trim('|').Split('|');
 string[] healthyFruits = GetHealthyFruits().Trim('|').Split('|');

 // now I need to get rotten fruits which are ones  allfruit - healthyfruits

 // I need string[] rottenFruits please

只是不确定如何使用linq。

4 个答案:

答案 0 :(得分:7)

您可以使用产生设定差异的Enumerable.Except

var rotten = allFruits.Except(healthyFruits);

如果您需要再次使用数组,请使用ToArray

答案 1 :(得分:3)

Except扩展方法无疑是执行您要求的最佳方式,但严格来说,它不是LINQ。 LINQ是"语言集成查询"并且是以一种将它们集成到语言中的方式应用肯定的扩展方法。

因此,例如,要使用LINQ对您的请求进行编码,您可以这样做:

var query =
    from fruit in allFruits
    where !healthyFruits.Contains(fruit)
    select fruit;

var results = query.ToArray();

只是有点挑剔。 : - )

答案 2 :(得分:1)

试试这个

var fruits = allFruits.Except(healthyFruits);

答案 3 :(得分:1)

  

现在我需要得到腐烂的水果,这些水果都是全熟的 - 健康的水果   我需要字符串[] rottenFruits

创建一个新的字符串数组并用allfruits填充它,不包含在healthyFruits中并将其转换为数组:

string[] rottenFruits = allFruits.Except(healthyFruits).ToArray();

不要忘记在课程顶部添加:using System.Linq;