如何根据另一个列表中的表单顺序对列表进行排序

时间:2020-03-13 03:40:17

标签: c# linq

我有两个带有两个不同对象的列表 列表abc =新的List();每个对象都有ID,名称和城市等字段。 另一个列表包含列表mno = new List();每个对象都包含ID FormOrder。

就像:List1

ID     Name     City
===================
205   AAAA    XXX
------------------
101   NNN    YYYY
------------------
105   CBC    NNN
------------------
25    NAN    CAP
=================


List2:

ID    FormOrder
=============
101     0
-------------
205     3
-------------
105     5
-------------
25      6
=============

需要根据第二个列表形式顺序对第一个列表进行排序。请提出任何建议。

2 个答案:

答案 0 :(得分:3)

尝试根据ID在两个列表上应用LINQ连接,然后根据FormOrder对结果进行排序。

如下所示,

var res = from l1 in list1 
          join l2 in list2 
          on l1.ID equals l2.ID 
          orderby l2.FormOrder
          select l1;

答案 1 :(得分:0)

使用.Join,然后将第一个加入第二个。

list2.Join(list1, 
           l2 => l2.Id, 
           l1 => l1.Id, 
           (l1,l2) => new { l2.Id, l2.FormOrder, l1.Name, l1.City })
      .OrderBy(x=>x.FormOrder);