如何根据另一个列表同步两个列表?

时间:2014-07-12 11:24:09

标签: c# .net

ListsExtractions.dateTimeList = ListsExtractions.dateTimeList.OrderByDescending(x => x).ToList();
ListsExtractions.TextList = ListsExtractions.TextList.OrderByDescending(x => x).ToList();
FilteredLinks = FilteredLinks.OrderByDescending(x => x).ToList();

所有3个列表dateTimeList,TextList,FilteredLinks类型为<string>

第一个List dateTimeList我按较高的顺序排序。它按照我的意愿很好。 现在我需要对另外两个列表进行排序以同步到dateTimeList。 在对dateTimeList进行排序之前,它们是同步的。 但是现在在排序dateTimeList之后,我需要将另外两个排序到第一个。

我也尝试将OrderByDescending设为其他两个列表,但这不是正确的方法。

1 个答案:

答案 0 :(得分:0)

对于这种类型的排序,您需要将数据合并到一个数据结构(排序之前)。例如,您可以将一个列表中的3个字符串列表与Tuple<string, string, string>结合起来(但最好为您的业务逻辑创建特定类型)。然后排序如下:

newData.OrderByDescending(item => item.Item1).ToList()

修改:要创建元组列表,您可以使用此功能(例如,您有名称为abc的列表:

var newData = a.Select((x, index) => new Tuple<string, string, string>(x, b[index], c[index])).OrderByDescending(x => x.Item1).ToList();

您可以在dotnetfiddle https://dotnetfiddle.net/kOh2bf

中查看示例