gpt4 book ai didi

c# - 按自定义顺序对列表进行排序

转载 作者:行者123 更新时间:2023-12-02 09:00:11 25 4
gpt4 key购买 nike

我有一些类型的数组

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com