LINQ:根据内部集合订购连接结果

时间:2011-11-16 18:41:14

标签: linq sql-order-by

是否可以根据内部集合顺序对LINQ连接操作的结果进行排序?

说我有两个系列:

var names = new[]{"John", "Mary", "David"};
var persons= new[]{ new Person{Name="John", Title"Prof"}, new Person{Name="Mary", Title="Accountant"}, new Person{Name="David", Title="Mechanic"}, new Person{Name="Peter", Title="Homeless"}}

如果我进行LINQ连接以获得如下的人员子集:

var taxPayers =
                persons
                    .Join(names , p => p.Name, n => n, (p, n) => p)
                    .Select(f => new KeyValuePair<string, object>(f.Name, f.Title));

结果是根据人员阵列排序的。

使用LINQ可以根据名称的顺序订购taxPayers吗?或者这不是LINQable操作吗?

TIA。

1 个答案:

答案 0 :(得分:2)

简单地反转连接应该有效。不要将名字加入人名,而是将人加入名字。