为了账号安全,请及时绑定邮箱和手机立即绑定

检查列表是否根据另一个列表排序 C#

检查列表是否根据另一个列表排序 C#

C#
莫回无 2021-07-20 17:16:38
我有一个字符串列表,它是用特定方法排序的:list1 : { "E", "C", "B", "A"};现在我想检查其他数组,如果它是根据 list1 排序的,那么它是正确的。例如 :array: { "A", "C", "E", "B" } //false - not ordered according to list1array: { "E", "B", "C" }      //false - not ordered according to list1array: { "C", "A"}            //true-   ordered according to list1功能代码:List<string> list1 = new List<string> { "E", "C", "B", "A"};public static bool IsSorted(string[] array){    for (int i = 0; i < array.Length; i++)    {       if () //Your opinion       {       return false;       }    }    return true;}
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

我认为使用列表而不是数组很容易


这是一个例子:


List<int> list1 = new List<int>();

  list1.Add(1);

  list1.Add(2);

  list1.Add(3);


List<int> list2 = new List<int>();


  list2.Add(2);

  list2.Add(3);



 Console.WriteLine( list1.Intersect(list2).SequenceEqual(list2)); // Will return true

根据您的示例发布了一个关于 int 变量的示例,您可以使用您想要的任何类型


更新:它也适用于数组(感谢@Matthew Watson)


int[] arr1 = { 1, 2, 3 };

int[] arr2 = { 2, 3 };

Console.WriteLine( arr1.Intersect(arr2).SequenceEqual(arr2)); // will return true 


查看完整回答
反对 回复 2021-07-31
?
www说

TA贡献1775条经验 获得超8个赞

为此,您可以使用两种 LINQ 方法:Intersect获取两个列表共有的项目;然后SequenceEqual检查两个列表是否具有相同顺序的相同项目。所以:

listToCheck.Intersect(list1).SequenceEqual(listToCheck)


查看完整回答
反对 回复 2021-07-31
  • 3 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信