在c#中比较两个list,如果他们的长度相同,且有相同的元素,元素的位置可以不同,就算他们相等
时间: 2024-04-08 17:35:27 浏览: 86
在C#中,可以使用`SequenceEqual`方法来比较两个List是否相等,即使它们的元素顺序不同。但是,这种方法只会比较两个List中的元素是否相同,而不会检查元素的位置。
以下是一个示例代码,演示如何比较两个List是否相等:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
List<int> list1 = new List<int> { 1, 2, 3, 4, 5 };
List<int> list2 = new List<int> { 2, 3, 1, 5, 4 };
bool isEqual = list1.Count == list2.Count && list1.OrderBy(x => x).SequenceEqual(list2.OrderBy(x => x));
Console.WriteLine($"两个List是否相等:{isEqual}");
}
}
```
输出结果为:
```
两个List是否相等:True
```
在上述示例中,我们首先比较两个List的长度是否相等,然后使用`OrderBy`方法对两个List进行排序,最后使用`SequenceEqual`方法来比较排序后的List是否相等。如果两个List的长度相同且元素相同(无论顺序如何),则返回True,否则返回False。
阅读全文