gpt4 book ai didi

c# - 比较 2 个字符串数组元素并返回

转载 作者:行者123 更新时间:2023-11-30 13:53:56 26 4
gpt4 key购买 nike

我实际上是一名 SQL 开发人员,但现在从事 C# 和 LINQ 方面的工作。我心中有一个逻辑,但由于技术障碍,我无法实现它。

我将有 2 个字符串数组。以下是我要实现的条件,

  1. 我想知道数组 2 的元素是否存在于数组 1 中。
  2. 然后检查两个数组的元素顺序。

例如。正确大小写

字符串 1:{"ID","Name","Age","Address","Gender","Phone"}

字符串 2:{"ID","Name","Phone"}

所以这应该返回 true,因为数组 2 的所有元素都存在于数组 1 中并且顺序也是正确的。

大小写错误

字符串 1:{"ID","Name","Age","Address","Gender","Phone"}

字符串 2:{"ID","Name","Phone","Address"}

这应该返回 false,尽管数组 1 中存在数组 2 元素,“Phone”出现在“Address”之前,但在数组 1 中“Address”出现在“Phone”之前。序列不正确,因此它应该返回 false。

这可能吗?我还没有写任何代码,因为我是 LINQ 的新手。如果不是 LINQ,请问我这在 C# 中是否可行,

最佳答案

您可以使用IntersectSequenceEqual:

string[] a = new [] {"ID","Name","Age","Address","Gender","Phone"};
string[] b = new [] {"ID","Name","Phone"};
string[] c = new [] {"ID","Name","Phone","Address"};

Console.WriteLine(a.Intersect(b).SequenceEqual(b));
Console.WriteLine(a.Intersect(c).SequenceEqual(c));

Intersect 将获取同时出现在 a 和 b 中的元素,然后 SequenceEqual 将确保它们的顺序相同。

值得注意的是,Intersect() 有效地调用了 .Distinct(),因此它仅在列表仅包含唯一元素时才有效。 Intersect() 将忽略任一列表中的重复项。

Fiddle

关于c# - 比较 2 个字符串数组元素并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50422781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com