conditionnel mise à Jour d'une liste à l'aide de LINQ
J'avais une liste
List<Myclass> li = new List<Myclass>();
où Myclass est
class Myclass
{
public string name {get;set;}
public decimal age {get;set;}
}
éléments li ressemble
i want to update `li` according to name but with `LINQ` like
li.where(w=> w.name = "di") = li.Where(w => w.name =="di").select(s => {s.age = 10;return s;}).Tolist();
li.where(w=> w.name = "marks") = li.Where(w => w.name =="marks").select(s => {s.age = 20;return s;}).Tolist();
li.where(w=> w.name = "grade") = li.Where(w => w.name =="grade").select(s => {s.age = 10;return s;}).Tolist();
et souhaitez résultat qui ressemble à ceci
mon code donne erreur pouvez-vous me dire comment je le faire
Cette question est difficile et/ou dangereux pour répondre sans tromper les gens en leur faisant croire que LINQ est une solution appropriée à votre problème. LINQ est synonyme de Language Integrated Query. Il a été conçu pour apporter natif d'interrogation des données .NET. Il suffit de mettre: ce que vous faites est pas de l'interrogation. @wudzik réponse montre comment LINQ est destiné à être utilisé: comme un outil pour interroger une collection. Vous devriez vous demander "quel outil dois-je utiliser ici" au lieu d'essayer de forcer LINQ à cet outil.
Ok je l'ai eu....
Ok je l'ai eu....
OriginalL'auteur Co. Aden | 2013-11-12
Vous devez vous connecter pour publier un commentaire.
nettoyant façon de le faire est en utilisant foreach
LINQ est pour interrogation ne pas changer
OriginalL'auteur wudzik
Vous avez besoin:
Code de programme:
De sortie:
where
Une nouvelle Liste, oui - mais contenant les mêmes éléments, qui sera mis à jour correctement. Cette nouvelle liste est ensuite défaussée.
il sera jeté mais, comment allez-vous remplacer les anciennes valeurs de la liste?
li=yourstatement
supprimera les autres valeursAussi, Linq n'est utilisé ici pour faire une boucle sur la collection, tout comme wudzik de réponse. La je.age = 10 partie n'est pas différent de l'élément.age = 10. Dans les deux cas , la mise à jour ne se fait pas avec Linq 🙂
Mise à jour, je ne fait ici que @oerkelens mentionné
OriginalL'auteur Baldrick
n'oubliez pas le retour de la syntaxe, il m'a fallu une heure
OriginalL'auteur sivabalan
Si vous voulez vraiment utiliser linq, vous pouvez faire quelque chose comme ceci
ou
Cela suppose qu'il n'existe que 3 types de
name
. Je voudrais que l'externalisation de la partie, en fonction de la rendre plus maniable.OriginalL'auteur Smeegs
Essayer Parallèle pour plus de listes:
OriginalL'auteur Santosh
Essayez ceci:
Toutes les valeurs sont mises à jour en une seule ligne de code et vous parcourir la Liste en UNE seule fois. Vous avez aussi une manière de définir une valeur par défaut.
OriginalL'auteur David Donari
Comment sur
OriginalL'auteur FindOut_Quran