Maison > Article > développement back-end > Programme C# pour rechercher des entiers dans une liste d'objets et les trier à l'aide de LINQ
Dans cet article, nous apprendrons comment écrire un programme C# pour rechercher des entiers dans une liste d'objets et les trier à l'aide de LINQ. Donnons un bref aperçu de la langue. Le langage de programmation C# est fréquemment utilisé pour développer des applications de bureau, Web et mobiles. La requête intégrée au langage (parfois appelée LINQ) est l'un des points forts de C#. Les développeurs peuvent rapidement interroger des données provenant de diverses sources, notamment des tableaux, des collections et des bases de données. Il permet aux développeurs d'utiliser une syntaxe équivalente à SQL (Structured Query Language) et prend en charge une manipulation et un tri simples des données. Il fournit une syntaxe standard pour l'interrogation de données quelle que soit la source de données. La syntaxe de LINQ étant similaire à celle de SQL, les développeurs peuvent facilement l'apprendre et l'utiliser.
Dans cet article, nous montrerons comment rechercher des entiers dans une liste d'objets et les trier à l'aide de LINQ en C#. Les doubles entiers doivent être obtenus à partir d’une liste d’objets, puis ils doivent être triés. Par conséquent, la méthode OfType() peut être utilisée pour cette opération et la fonction OrderBy() peut être utilisée pour trier les entiers. Passons en revue chacun d'eux et leur syntaxe -
Il est utilisé pour filtrer les éléments de IEnumerable selon le type spécifié. Si la source fournie est nulle, cette méthode lève une ArgumentNullException.
public static System.Collections.Generic.IEnumerable<TResult> OfType<TResult>(this System.Collections.IEnumerable source);
Utilisez cette technique pour trier les éléments d'une collection par ordre croissant. Cette procédure lève également une ArgumentNullException si la source fournie est nulle.
public static System.Linq.IOrderedEnumerable OrderBy<TSource,TKey(thisSystem.Collections.Generic.IEnumerable<TSource> list, Func<TSource,TKey> Selector);
Comprenons ce problème à travers un exemple.
Créez une liste et ajoutez-y des éléments. Dans cet exemple, nous prenons des objets de différents types de données.
Entrez
["Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34]
Pour différents objets, les méthodes OfType() et OrderBy() trieront et organiseront les valeurs entières dans la liste. Donc le résultat étant donné l'entrée est
Sortie
[18, 20, 34,100]
Étape 1 −Créer une liste d'objets
Nous créons d'abord une liste d'objets composée d'une combinaison de chaînes, d'entiers et de caractères.
List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34};
Étape 2 − Utilisez la méthode OfType() pour trouver des entiers
La méthode OfType() sera ensuite utilisée pour filtrer la liste afin que seules les valeurs entières soient conservées.
var integers = list.OfType<int>();
La méthode d'extension fournie par LINQ s'appelle OfType(). Il renvoie une liste filtrée de ces entrées. Dans cet exemple, la liste est filtrée pour contenir uniquement des éléments de type int. Désormais, seules les valeurs entières de la première liste apparaissent dans la variable entière.
Étape 3 −Utilisez OrderBy() pour trier les entiers
Nous pouvons utiliser la fonction OrderBy() pour trier une séquence de valeurs entières par ordre croissant.
var sortedIntegers = integers.OrderBy(x => x);
Une autre fonction d'extension fournie par LINQ est OrderBy(). Il trie la liste des éléments par ordre croissant en fonction de la clé donnée. Dans cet exemple, une expression lambda (x => x) est utilisée pour spécifier la clé selon laquelle la série est triée. Passez l'élément de séquence (x) à une expression lambda, qui renvoie ensuite la valeur qui sera la clé de tri.
Les valeurs entières de la liste initiale apparaissent désormais dans la variable sortedIntegers, triées par ordre croissant.
Étape 4 −Imprimez les entiers triés.
Enfin, nous pouvons utiliser la boucle foreach et la méthode Console.WriteLine() pour imprimer les valeurs entières triées.
Il s’agit d’un algorithme simple que nous venons de lire. Examinons maintenant un programme C# complet qui montre comment rechercher des entiers dans une liste d'objets et les trier à l'aide de LINQ.
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, "50", 20, 'A', 34 }; var integers = list.OfType<int>(); var sortedIntegers = integers.OrderBy(x => x); Console.WriteLine("Sorted integer values are:"); foreach (int integer in sortedIntegers) { Console.WriteLine(integer); } } }
Sorted integer values are: 18 20 34 100
Dans cet article, nous vous montrons comment rechercher des entiers dans une liste d'objets et les trier à l'aide de LINQ en C#. Après avoir supprimé toutes les valeurs, à l'exception des valeurs entières, de la liste à l'aide de la fonction OfType(), nous trions les entiers à l'aide de la méthode OrderBy(). Enfin, nous utilisons la commande print pour afficher les valeurs entières triées sur la console. Nous avons découvert l'algorithme et vu le code. Nous espérons que cet article vous aidera à améliorer vos connaissances et votre compréhension de ce sujet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!