2012-04-27 113 views
0

在下面的选择和排序查询的列列表...我怎么能够做到TMP的排序依据的全球性的标签识别订单?排序不同的列表

两个列表...都有不同数量的项目,但两者有一个名为标签识别领域。我想返回费用列表Summary_MemberTmp,但是按照费用总和_MemberTmp中TagId的顺序排序。

var expensesSummary_Member = from global in expensesSummary_Global.Select(x => x.TagId).ToList() 
          join tmp in expensesSummary_MemberTmp 
          on global equals tmp.TagId 
          orderby tmp.TagId 
          select tmp; 
+0

排序依据全球性的? – 2012-04-27 10:00:36

+0

对不起,但我不明白是什么问题? – Likurg 2012-04-27 10:01:00

+0

假设'expensesSummary_MemberTmp'列表有TagIds'{77,11,13,2}','expensesSummary_Global'有'{13,77}'。他们的物品是否应该按照“{77,13}”排序,因为77在'expensesSummary_MemberTmp'上的排名是13? – dasblinkenlight 2012-04-27 10:02:20

回答

1

如果你想保持第一序列的顺序,你不应该责令其结果都:

var expensesSummary_Member = 
    from global in expensesSummary_Global.Select(x => x.TagId).ToList() 
    join tmp in expensesSummary_MemberTmp 
    on global equals tmp.TagId 
    select tmp; 
+0

在反转连接时,编译器会说: 名称'global'不在'equals'左侧的范围内。考虑交换'equals'两边的表达式。 – 2012-04-27 11:05:05

+0

是的,我忽略了这一点。但是这个解决方案无论如何都是错误的,因为它是基于错误的假设。 – Nuffin 2012-04-27 11:08:43

+0

这基本上是我在我的帖子中发表的以前的评论所需要的: expensesSummary_Global包含主列表例如TagIds {77,11,13,2}(这个顺序必须保持不变)。然后,费用总结_MemberTmp将包含较小的列表{13,77}。由于费用顺序,我需要支出Summary_MemberTmp将结果返回为{77,13}总结_全局 – 2012-04-27 11:10:58