J'ai un problème simple, mais je ne comprends pas l'un des exemples que je trouve ici ou dans MSDN. (Je suis encore nouveau pour C# et toutes les fonctions de jeux de données). J'ai un datable "tblRoom" que ses columms sont "bâtiment", "appartement" et "pièce" et ils sont tous ints et les clés primaires de la table (c'est une entité faible de l'appartement (qui est une entité faible de bâtiment) sans autres propriétés/colonnes).Comment trouver la valeur maximale dans une colonne dans une barre de données []?
J'ai aussi DataRow[] roomCollection
qui sélectionne un appartement spécifique dans un immeuble avec ce code:
roomCollection = dbDataSet.tblRoom.Select("building ='"+ b_int +
"' and apartment='"+ a_int + "'");
Tout cela fonctionne très bien (je suppose ...). Maintenant, je veux obtenir la valeur maximale de la chambre de cet appartement (le nombre de chambre maximum dans cet appartement). J'ai essayé en vain ces codes:
DataRow dr = roomCollection.Max();
int maxi = roomCollection.Max();
Je ne reçois pas de l'info-bulle ce que je suis supposé écrire dans la fonction. Il génère des exceptions sur IEnumerable ou Icomparable.
Que dois-je écrire pour obtenir la valeur max (int) dans la colonne de la pièce? Tout le monde connaît un "[quelque chose] pour les nuls" qui l'explique à un idiot parce que je ne comprends pas la signification des erreurs/tooltip de ce que je suis supposé écrire dans le Max()
.
EDIT: L'info-bulle suggèrent d'entrer dans ces (voir ci relevants):
(this IEnumerable <DataRow> source):DataRow
(this IEnumerable <DataRow> source, Func<DataRow,int?> selector):int?
(this IEnumerable <DataRow> source, Func<DataRow,int> selector):int
Je ne comprends vraiment pas :(
Merci d'avance, Shay
Ah ça marche! Merci beaucoup. J'ai juste 2 autres petites questions: 1. Est-ce que cette syntaxe est LINQ? 2. Qu'est-ce que cela signifie? var "r" obtient (casted int) de ["room"]? Je ne comprends vraiment pas comment passer cette connaissance à d'autres problèmes ... pourquoi "r" est l'opérande gauche de => et sur le côté droit de celui-ci trop près du nom de la colonne? –
la syntaxe est linq avec des délégués ... le r est le premier paramètre du délégué et est de type DataRow (puisqu'il provient de DataRowCollection rommCollection) et après => c'est le corps du délégué représentant cette valeur utilisée par le Max méthode d'extension à évaluer ... – Yahia