按匿名方法排序

use*_*418 1 .net c# linq compiler-errors sql-order-by

关于排序时如何投票?,我尝试了下面的答案之一.

vehicleList.OrderBy(c=>
{
    Car car = c as Car;
    if (car != null)
        return car.ModelName
    else
        return "";
}
Run Code Online (Sandbox Code Playgroud)

但它给出了编译器错误:

无法从用法中推断出方法'System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable,System.Func)'的类型参数.尝试显式指定类型参数.

这有什么问题?怎么纠正?

我试图实现的目标如下:

  • 如果对象的类型为Car,则按ModelName排序
  • 如果对象id为Train类型,则通过TrainName.

Moh*_*han 6

这解决了错误:

var sortedVehicles = vehicleList.OrderBy<Vehicle, string>(c=>
    {
        ...
    });
Run Code Online (Sandbox Code Playgroud)