Code le plus court pour calculer la liste min / max dans .NET
Je voudrais quelque chose comme
int minIndex = list.FindMin(delegate (MyClass a, MyClass b) {returns a.CompareTo(b);});
Est-il un builtin façon de le faire .NET?
source d'informationauteur ripper234
Vous devez vous connecter pour publier un commentaire.
Essayez de regarder ces:
Min
Max
Aussi longtemps que votre classe implémente IComparable, tout ce que vous avez à faire est de:
Bien, si vous ne pouvez pas utiliser .NET 3.5, vous avez toujours la possibilité de trier la liste et ensuite de retour à la liste[0]. Il pourrait ne pas être le moyen le plus rapide, mais c'est sans doute le plus court de code, surtout si votre classe implémente déjà IComparable.
Cela suppose aussi, bien sûr, qu'il n'a pas d'importance quel élément de votre retour si vous avez plusieurs éléments que sont le minimum ou le maximum.
Si votre classe n'implémente pas IComparable, vous pouvez passer un délégué anonyme, quelque chose comme ceci:
À l'aide de Linq, vous avez la Min() et Max ().
De sorte que vous pouvez faire
list.AsQueryable().Min();
Vous notez que "je suis toujours en 2" - pourrait-on, alors, vous voulez regarder à LINQBridge. C'est en fait pour fonction de C# 3.0 et .NET 2.0, mais vous devriez être capable de l'utiliser avec C# 2.0 et .NET 2.0 - seulement vous aurez à utiliser la longue-main:
Bien sûr, il sera plus facile si vous pouvez passer à C# 3.0 (encore mieux les cibler .NET 2.0).
Et si LINQBridge n'est pas une option, vous pouvez la mettre en œuvre vous-même: