J'ai mis mes propres classes GenericList et des tâches telles que:Liste générique et IComparable Tri Erreur: Impossible de convertir l'expression lambda
public GenericList<T> where T: Task
{
public List<T> list = new List<T>();
....
public void Sort()
{
list = list.Sort((a,b) => b.Id.CompareTo(a.Id) > 0);
//here I am getting the Error Warning by Visual Studio IDE
//Error: Can not convert lambda expression to
//'System.Collections.Generic.IComparer<T>' because it is not a delegate type
}
}
public class Task
{
public int Id {get; set;}
public Task(int ID)
{Id = ID;}
}
here I am getting the Error Warning by Visual Studio IDE Error: Can not convert lambda expression to 'System.Collections.Generic.IComparer' because it is not a delegate type
J'ai essayé même de mettre en œuvre les éléments suivants à la place dans le Trier() méthode utilisant la méthode Compare.Create:
list = list.OrderBy(x => x.Id,
Comparer<Task>.Create((x, y) => x.Id > y.Id ? 1 : x.Id < y.Id ? -1 : 0));
//Here the Error: the type argument for the method can not be inferred
Mais j'obtiens toujours l'erreur. J'essaie de trier les tâches en fonction de leurs identifiants dans mon implémentation de Sort dans GenericList. Quelqu'un peut-il m'aider comment puis-je être en mesure d'atteindre cet objectif?
Toute aide est appréciée. Merci d'avance.
Merci pour votre aide. Cela a fonctionné parfaitement. –