我有一些类型的数组
private string[] linkTypes = {
"dog",
"cat",
// and so on ..
};
Yes, I could use an
enum
but in this case it has to be an array of strings.
现在我有一个名为“LinkElement”的对象列表
private List<LinkElement> links = new List<LinkElement>();
这些对象有一个名为“Type”的字符串属性
string linkType = links[index].Type;
如果 linkTypes 包含元素“dog”和“cat”,则我的链接只能将“dog”或“cat”作为其类型。
我想按链接类型的顺序对列表“链接”进行排序。
表示列表顺序首先包含类型为“dog”的链接,然后出现类型为“cat”的链接。
List<LinkElement> sortedLinks = ; // sort links
for (int i = 0; i < sortedLinks.Count; i++)
{
LinkElement currentLink = sortedLinks[i];
Console.WriteLine(currentLink.Type);
}
// Write down dogs first, cats after
有人可以帮我吗?
最佳答案
假设linkTypes
(私有(private)字符串数组)与links
(LinkElement
列表)位于同一类中,您可以使用LINQ的使用简单的 lambda 表达式的 OrderBy:
var sortedLinks = links.OrderBy(le => Array.IndexOf(linkTypes, le.linkType)).ToList()
关于c# - 按自定义顺序对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47293353/