c# - 按另一个字符串列表对字符串列表进行排序

标签 c# linq sorting

<分区>

我有一个字符串列表,我想按另一个字符串列表排序,如果列表中有项目不在比较器列表中,我希望它们位于列表末尾。我该怎么做?

所以如果我有这个列表:List<string> {"A","T","G","F","V","E","W","Q" }
我有一个比较器:List<string> {"T","F","V","A" }
我希望结果是:List<string> {"T","F","V","A","G","E","W","Q" }

谢谢!

最佳答案

看起来您需要使用 IntersectExcept,例如:

List<string> originalList = new List<string> {"A", "T", "G", "F", "V", "E", "W", "Q"};
List<string> compareList = new List<string> {"T", "F", "V", "A"};

var intersectedItems = compareList.Intersect(originalList);
var notIntersectedItems = originalList.Except(compareList);
var resultList = intersectedItems.Concat(notIntersectedItems).ToList();

您将获得:

resultList = T,F,V,A,G,E,W,Q

关于c# - 按另一个字符串列表对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744229/

相关文章:

c# - LINQ 的替代品 .Contains()

java - QuickHull 算法的复杂性?

c# - XPS 文档中未反射(reflect)绑定(bind)值

c# - C 构建(从 C# 的角度)

c# - 将数据从 ASP.NET Web 应用程序插入到 SQL Server

ios - 如何在 ios 中使用动态键对 NSMutableDictionary 进行排序?

ios - 首先对 NSString 的 NSArray 按阿拉伯语字母顺序排序

c# - 当调试器分离时,应用程序能否得到通知?

c# - 为什么 IEnumerable 投影不是不可变的?

c# - 使用 Linq 在 EF 中编辑用户时无法创建类型的常量值