繁体   English   中英

如何比较两个List <String> 在C#中使用LINQ

[英]How to compare two List<String> using LINQ in C#

这两个清单就像

          LISTONE    "ONE", "TWO", "THREE"
          LISTTWO    "ONE", "TWO", "THREE"

我需要比较两个列表中的项目是否相同。

在LINQ中有没有办法做到这一点

也许:

bool equal = collection1.SequenceEqual(collection2);

另请参阅: 比较两个集合的相等性,而不管其中的项目顺序如何

确定两个列表是否包含相同顺序的相同数据:

bool result = list1.SequenceEqual(list2);

相同的条目顺序不同:

bool result = list1.Intersect(list2).Count() == list1.Count;

如果你知道不能有重复:

bool result = a.All(item => a.IndexOf(item) == b.IndexOf(item));

除此以外

bool result = a.SequenceEquals(b)
List<string> list1;
List<string> list2;

bool sameOrder = list1.SequenceEqual(list2);

这些是正确的答案,但作为一个想法,如果你知道列表将具有相同的数据,但可能是不同的顺序,为什么不只是排序列表,以保证相同的顺序。

var newList = LISTONE.OrderBy(x=>x.[sequence]).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM