compte tenu de la source de données suivantes:LINQ et lambdas pour rechercher Dictionnaire> Classe> Liste> données Struct
public struct Strc
{
public decimal A;
public decimal B;
// more stuff
}
public class CLASS
{
public List<Strc> listStrc = new List<Strc>();
// other stuff
}
Dictionary<string, CLASS> dict = new Dictionary<string, CLASS>();
je dois recueillir toutes les Strc.B dans le dictionnaire, fourni Strc.A est par exemple> 3.
-je obtenir le résultat procédant comme suit:
List<decimal> results = (
from v in dizS.Values
from ls in v.listStr
where ls.A > 3
select ls.B
).ToList();
J'ai aussi essayé de l'écrire en utilisant lambdas, mais je ne misérablement ...
var res = dict.Values.Where(x => x.listStrc.Any(z => z.A > 3))
c'est aussi loin que je pourrais obtenir, mais je ne parviens pas à sélectionner alors les données .B ... Qu'est-ce que je fais mal? (donné que j'ai fait quelque chose de bien en premier lieu: D) Merci pour votre temps.
Votre expression de requête doit être ce que vous voulez. Je n'ai pas compris quel est ton problème avec ça? –
Salut, celui sans lambdas fonctionne bien, je n'arrive pas à obtenir celui avec lambdas pour travailler. – Xarylem