Несколько заказывают с LINQ [дубликат]

Этот вопрос уже имеет ответ здесь:

Я запускаю с основного класса, которым я хочу управлять в Списке с помощью LINQ, чего-то как следующее:

public class FooBar   
{  
    public virtual int Id { get; set; }  
    public virtual string Foo{ get; set; }  
    public virtual string Bar{ get; set; }
}

Это - то, что я в конечном счете узнал для решения моей проблемы с помощью не лямбды материал LINQ.

// code somewhere else that works and gets the desired results  
var foobarList = GetFooBarList();  // Abstracted out - returns List  

// Interesting piece of code that I want to examine
var resultSet = from foobars in foobarList  
                orderby foobars.Foo, foobars.Bar  
                select foobars;

// Iterate and do something interesting  
foreach (var foobar in resultSet)  
{  
    // Do some code  
}

То, на предмет чего мне действительно любопытно, - то, если то же может быть выполнено с помощью основанных на лямбде дополнительных методов прочь универсального IEnumerable для выполнения того же самого. Google говорит мне, что я могу сделать что-то как следующее для выполнения его

var resultSet = foobarList.OrderBy(x => new {x.Foo, x.Bar})  
                          .Select(x=>x);

Однако, если я делаю это, я получаю ошибку периода выполнения, когда я поразил foreach оператор. Ошибка говорит мне, что по крайней мере один объект должен реализовать IComparible, который я вижу это, так как я использую анонимный тип для.OrderBy () метод.

Так существует ли способ выполнить то, что я хочу использовать Лямбду путь?

215
задан H.B. 1 April 2015 в 01:57
поделиться