比较两个数组并从第二个数组中删除相同(相交)的值


string[] one={"my", "5", "two", "array", "hey?", "good", "day"};
string[] two={"hello!", "how", "good", "day", "us", "very", "two", "hard", "learn", "it"};

例如:我有上面这些数组,我想对它们进行比较,比较后从字符串[]中删除相同的值。所以,当我编译代码时,我的数组将是这样的;

string[] one={"my", "5", "two", "array", "hey?", "good", "day"};
string[] two={"hello!", "how", "us", "very", "hard", "learn", "it"};

注意:对不起,我对此没有任何想法。

只需在Linq语句中使用WhereContains,然后使用ToArray

简单来说,

  1. 它通过检查数组one是否不包含两个的每个元素来过滤数组two

  2. 将输出转换回阵列

  3. 将其返回给您的变量two

示例

string[] one={"my", "5", "two", "array", "hey?", "good", "day"};
string[] two = { "hello!", "how", "good", "day", "us", "very", "two", "hard", "learn", "it" };
two = two.Where(x => !one.Contains(x)).ToArray();
Console.WriteLine(string.Join(",", two));

注意,这是区分大小写的

输出

hello!,how,us,very,hard,learn,it

或者更高效的方法是使用Except,我完全忘记了(多亏了评论)

two = two.Except(one).ToArray();

枚举。除了方法

生成两个序列的集合差。

Enumerable.Where方法

基于谓词筛选值序列。

枚举。包含方法

确定序列是否包含指定的元素。

Enumerable.ToArray(IEnumerable)方法

从IEnumerable创建一个数组。

相关内容

  • 没有找到相关文章

最新更新