根据另一个固定列表对项目列表进行排序

And*_*dre 0 c# sorting

我是C#的初学者.

我有一份清单

private List<String> mXMLProdcutsIDs = new List<String>();
Run Code Online (Sandbox Code Playgroud)

mXMLProductsIDs就像

{"megapack", "levelpack","bikepack"}.
Run Code Online (Sandbox Code Playgroud)

有时我会得到another list which is in random order,{"megapack", "levelpack","bikepack"}
我想根据mXMLProductIDs列表顺序使用该列表

Ser*_*kiy 5

您可以使用原始列表中的字符串索引来定义项目顺序:

var result = anotherList.OrderBy(s => mXMLProdcutsIDs.IndexOf(s));
Run Code Online (Sandbox Code Playgroud)

缩短版本:

var result = anotherList.OrderBy(mXMLProdcutsIDs.IndexOf);
Run Code Online (Sandbox Code Playgroud)

请记住,结果将是IEnumerable<string>.ToList()如果需要将结果保存在列表中,则可以使用.


另一个选项(如果您在另一个列表中没有重复的项目):

var result = mXMLProdcutsIDs.Intersect(anotherList);
Run Code Online (Sandbox Code Playgroud)