我有一个通用列表
简化示例
var list = new List<string>() { "lorem1.doc","lorem2.docx","lorem3.ppt","lorem4.pptx","lorem5.doc","lorem6.doc",};
我想要做的是根据外部列表排序对这些项目进行排序
在例子中
var sortList = new[] { "pptx","ppt","docx","doc" }; // Or var sortList = new List<string>() { "pptx","doc" };
是否有任何内置的linq可以帮助我实现这一点,还是我必须采取foreach方式?
解决方法
使用该列表,您可以将IndexOf用于Enumerable.OrderBy:
var sorted = list.OrderBy(s => sortList.IndexOf(Path.GetExtension(s)));
因此sortList中的扩展索引确定了另一个列表中的优先级.未知扩展名具有最高优先级,因为它们的索引为-1.
var sortList = new List<string>() { ".pptx",".ppt",".docx",".doc" };
var sorted = list.OrderBy(s => sortList.IndexOf(Path.GetExtension(s).Remove(0,1)));
原文地址:https://www.jb51.cc/csharp/97908.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。