从.net中的两个字符串数组中删除常用字符串

时间:2013-12-28 13:45:15

标签: c# asp.net

string[] str = new string[] { "Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat" };
string[] str1 = new string[] { "Mon", "Tues", "Wed" };
string[] str2 = new string[10];

我想要

str2[]={"Sun","Thur","Fri","Sat"}

4 个答案:

答案 0 :(得分:3)

您可以使用Enumerable.Except,它使用默认的相等比较器来比较值,从而产生两个序列的集合差异。

 var str2= str.Except(str1);

注意:不要忘记添加System.Linq名称空间;

using System.Linq;

答案 1 :(得分:1)

您可以对LINQ使用Enumerable.Except方法。不要忘记添加System.Linq命名空间。等;

  

使用默认值生成两个序列的集合差异   等于比较来比较值。

string[] str = new string[] { "Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat" };
string[] str1 = new string[] { "Mon", "Tues", "Wed" };

var str2 = str.Except(str1);

foreach (var i in str2)
{
   Console.WriteLine(i);
}

输出将是;

Sun
Thur
Fri
Sat

这里有 demonstration

答案 2 :(得分:1)

string[] str = new string[] { "Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat" };
string[] str1 = new string[] { "Mon", "Tues", "Wed" };

var str2 = str.Where(t => !str1.Contains(t)).ToArray();

答案 3 :(得分:0)

您也可以将WhereContains

一起使用
var str2 = str.Where(s => !(str1.Contains(s)).Select(s => s);