Je suis un débutant essayant d'apprendre à utiliser lambdas, je le class Character
qui a l'intérieur d'un "List<Item> inventory"
qui peut contenir "class Sword: Item"
et "class Shield: Item"
Utiliser Lambda pour accéder à une liste dans une liste?
Je veux obtenir un List<float>
qui affiche les dégâts de chacun de mes personnages . Le damage
étant le sum of damages
de items
dans leur inventory(swords and shields)
. Jusqu'ici, je sais que je peux le faire pour un personnage individuel dans ma liste de personnage et obtenir la somme des dégâts de ses objets. Mais quand j'essaye de faire tous mes personnages en même temps, cela ne fonctionne pas.
List<float> charactersTotalDamagesFromEachCharacter = characters
.Select(character => character.inventory)
.Select(item => item)
.Select(item => item.damage)
.Sum(dmg => dmg);
Je veux obtenir un List<float>
qui représentent la characters total damages(sum of damage of their items)
.
indice: '.Select (item => item)' ne note. Cela peut être simplifié comme suit: 'characters.Select (character => character.inventory) .Sum (item => item.damage);' – Jens
Commencez par réaliser que 'character' dans votre deuxième requête correspond à' characters [0] ' à partir du premier, mais pour chaque article. –
Je ne peux pas recommander assez pour étudier Edulinq (http://codeblog.jonskeet.uk/category/edulinq/) pour apprendre LINQ la manière lisse. – Larry