Orden múltiple Por con LINQ [duplicado]
Esta pregunta ya tiene una respuesta aquí:
- Múltiples "orden por" en LINQ 7 respuestas
Empiezo con una clase básica que quiero manipular en una Lista usando LINQ, algo así como lo siguiente:
public class FooBar
{
public virtual int Id { get; set; }
public virtual string Foo{ get; set; }
public virtual string Bar{ get; set; }
}
Esto es lo que finalmente descubrí para resolver mi problema usando cosas que no son lambda LINQ.
// code somewhere else that works and gets the desired results
var foobarList = GetFooBarList(); // Abstracted out - returns List<Foobar>
// 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
}
Lo que realmente tengo curiosidad se trata de si lo mismo se puede lograr utilizando los métodos de extensión basados en Lambda fuera de genericumerable genérico para lograr lo mismo. Google me dice que puedo hacer algo como lo siguiente para lograrlo
var resultSet = foobarList.OrderBy(x => new {x.Foo, x.Bar})
.Select(x=>x);
Sin embargo, si lo hago, obtengo un error de tiempo de ejecución cuando golpeo la instrucción foreach. El error me dice que al menos un objeto tiene que implementar IComparible, que puedo ver que ya que estoy utilizando un tipo anónimo para el .Método OrderBy ().
Así que hay una manera de ¿lograr lo que quiero usando el método Lambda?
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52