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

时间:2014-04-09 11:30:37

标签: c# sorting

我是C#的初学者。

我有一个

列表
private List<String> mXMLProdcutsIDs = new List<String>();

mXMLProductsIDs就像

{"megapack", "levelpack","bikepack"}.

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

来使用该列表

1 个答案:

答案 0 :(得分:5)

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

var result = anotherList.OrderBy(s => mXMLProdcutsIDs.IndexOf(s));

缩短版本:

var result = anotherList.OrderBy(mXMLProdcutsIDs.IndexOf);

请注意,结果将为IEnumerable<string>。如果需要将结果保存在列表中,可以使用ToList()


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

var result = mXMLProdcutsIDs.Intersect(anotherList);