9
votes

Recevez des valeurs séparées par des virgules groupées avec LINQ

Je voudrais une troisième colonne "éléments" avec les valeurs groupées. xxx

Ce code donne: xxx

Je voudrais ces résultats: xxx


0 commentaires

3 Réponses :


1
votes

Vous pouvez utiliser: xxx

Le résultat créé par groupement (valeur g ) a une clé qui vous donne la clé , mais cela implémente également ienumerable qui vous permet d'accéder aux valeurs individuelles du groupe. Si vous revenez juste g , vous pouvez également itérer sur toutes les valeurs à l'aide de pour utiliser ou les traiter à l'aide de LINQ.

Voici une simple fonction de décharge pour démontrer ceci : xxx


0 commentaires

15
votes
    var dCounts =
        (from i in dic
            group i by i.Value into g
            select new { g.Key, count = g.Count(), Items = string.Join(",", g.Select(kvp => kvp.Key)) });
Use string.Join(",", {array}), passing in your array of keys.

1 commentaires

Si nous utilisons string.join, vous obtenez une exception comme Linq aux entités ne reconnaissent pas la méthode String.Join



0
votes
from i in dic 
group i.Key by i.Value into g 
select new
{
  g.Key,
  count = g.Count(),
  items = string.Join(",", g.ToArray())
});

3 commentaires

Il a remporté; t Travailler, car ef ne peut pas reconnaître une méthode C # string.join ()


@Lablab question originale n'implique pas EF. Si vous avez une question sur EF, allez-y le demander.


Mettez simplement: je ne peux pas m'en empêcher si l'équipe de données Microsoft ne peut pas être à bord avec la langue Integration . Ils ont fait de l'EF sa propre chose avec sa propre dissonance. Nous avons une conversation LINQ ici, pas EF.