voici la classe voici la classe Et voici la classe Enfin, voici deux tout l'identifiant de chaque classe est unique. p> Maintenant, j'ai besoin de combiner Comme nous le savons, l'utilisateur arrive que la boutique peut être un nouvel utilisateur ou un ancien utilisateur. Si l'ID utilisateur de l'utilisateur dans À mon avis, je vais combiner deux liste en une première en une première, puis utilisez la méthode Cependant, il semble que le Bien que je puisse utiliser plusieurs ============================= P> ici est un exemple de l'entrée: p> La sortie est la suivante: p> keaudrived code>:
olduer code>: p>
utilisateur code>: p>
Liste Code>: p> < pré> xxx pré>
keaudrived code> et
OLDURER code> à un Tout neuf
list
CUNERARRIVÉE CODE> contient également dans
OLDUREER code>, la propriété
NewUser code> dans la nouvelle liste
dans la nouvelle liste code> est false pour true . P>
distincte code> pour supprimer les duplicats. P>
distinct code> ne peut pas fonctionner avec une condition. P>
pour utiliser code> pour résoudre ce problème pendant que je pense que c'est si gênant. Je veux utiliser quelque chose de facile juste comme
lambda code> ou
linq code>. Comment puis-je atteindre cela? P>
4 Réponses :
J'espère que j'ai compris votre requête. Une façon d'y parvenir à la linq serait
Maintenant, vous devez créer une liste distincte de code> utilisateur code> à partir de deux listes de types différents; En conséquence, je suggérerais ceci: p> qui obtient les identifiants uniques À partir des deux CuveArited code> et
OLDUREER code> Objets. Un utilisateur est identifié par un identifiant
unique code> de type de chaîne.
userrivedlist code> et
Olduserlist CODE> et crée un nouvel objet code> objet code> pour chacun. Le
olduserlist.count (o => o.id == x) == 0, code> Attribue
false code> dans la propriété
NewUser code> si l'utilisateur < Code> ID code> existe dans le
Olduserlist code> sinon
true code>. p> p>
@Enigmativity qui vous a dit ça? L'avez-vous essayé?
Vous obtenez différents résultats aux granges, Anu et I.
@Enigmativity Eh bien, j'aime déjà les barms. Maintenant, laissez les bons résultats pour l'OP, il sait ce qu'il n'a pas besoin de vous. Bonne journée.
Votre code olduserlist.count (o => o.id == x) == 0 code> dit si le
ID code> n'est pas dans l'ancienne liste, l'utilisateur doit être neuf. . L'OP dit "Si l'ID utilisateur de KeNserArived contient également dans OldUserer, la propriété Newuther de la nouvelle liste est FALSE pour True." qui est différent.
J'ai regardé certaines de vos autres réponses. Vous êtes un bon codeur solide et vos bonnes réponses écrites. Je pense que dans ce cas, vous venez de mal compris les exigences de l'OP - ils étaient un peu compliqué d'OMI.
@Enigmativitity Eh bien, vous pourriez aider un membre à comprendre également sans descendre :) comme ce que j'ai fait avec des bras ..
Je conviens que l'énoncé de la question était difficile à comprendre - les exigences relatives au résultat final n'étaient pas claires concernant la valeur souhaitée pour "NewUser" (au moins jusqu'à ce que l'OP a modifié l'instruction de question). En fait, j'ai considéré comme annotant ma solution avec la mise en garde que je devinait au résultat souhaité. JQsoft a évidemment une excellente compréhension du code - j'aime sa solution de base. La solution @enigmativitel est très élégante et succincte. Je vous souhaite bonne chance et je suis impatient de voir plus de solutions de votre part à la fois.
@Barns Pas de sentiments durs Buddy, c'est juste une discussion difficile. Franchement, j'apprends beaucoup de ses postes et j'apprends des vôtres maintenant. Merci à vous deux.
La chose à propos de Linq - ce n'est pas toujours facile. En fait, cela peut avoir fumé encombré. Dans la question de la question, j'ai lu,
Je veux utiliser quelque chose de facile comme Lambda ou Linq. P> BlockQuote>
Eh bien, c'est relatif. Mais je pense que lorsque vous utilisez LINQ, il faut essayer de le garder simple. Même casser la déclaration dans plusieurs déclarations si nécessaire. Pour cette raison, je propose cette solution (démontrée dans une application de console): p>
xxx pré>
p>Certainement, tout aurait pu être fait dans un Déclaration, mais je crois que cela le rend plus lisible et compréhensible. P>
EDIT: strong>
Il y a eu quelques discussions parmi les codeurs d'affichage des solutions sur quelles conditions doivent être respectées pour que la valeur "NewUser" soit définie sur "VRAI". C'est ce que je comprends de la question initiale postée selon laquelle l'ID "doit être présent dans les deux listes" CuanaireRriDlist "et" OldUserList ", mais j'ai tendance à être d'accord avec @jqsoft qu'il a plus de sens que la seule condition qui doit être remplie devrait Soyez que le "ID" ne doit être présent que dans "OlduserList". Si tel est effectivement le cas que leSELECT () CODE> L'expression ci-dessus doit être
.Sélectionnez (j => nouvel utilisateur {id = j, newuser =! SélectionnéeOrseer.contains (j)}); code> p> p>
@Jqsoft merci pour le conseil! J'aurais dû savoir que ... ou du moins lu les documents mieux. C'est une simplification et un temps d'exécution enregistré!
Ne sautez pas trop tôt. Votre réponse est correcte pour les données et la sortie des échantillons OPS. Jusqu'à présent, nous n'avons pas assez d'informations pour savoir qui a la bonne interprétation ici.
@JQsoft - J'essaie d'éviter de supprimer des commentaires. Cela fait de cela confusant de ce qui se passe.
Si je comprends votre besoin, vous dites que si un identifiant est dans les deux listes, l'utilisateur est un ancien utilisateur, sinon c'est un nouvel utilisateur.
Voici le moyen le plus simple que je puisse trouver Faites-le: p> testons avec une entrée: p> Voici mes résultats: p> Donc, il y a un peu de confusion sur les exigences ici. p> L'OP a ajouté un exemple concret des données d'entrée et de la sortie attendue. P> B code> est le seul utilisateur qui apparaît dans les deux listes, donc devrait être
false p>. p>.
var UserArrivedList = new List<UserArrived>()
{
new UserArrived() { id = "A" },
new UserArrived() { id = "B" },
};
var OldUserList = new List<OldUser>()
{
new OldUser() { id = "B" },
new OldUser() { id = "C" },
};
Comprenez-vous la question? :))
@JQsoft - Je sens que j'ai - et j'ai les mêmes résultats que les Barns & Anu.
Maintenant, vérifiez l'édition de l'OP et dites-moi qui a tort? Le NewUser = olduserlist.count (o => o.id == x) == 0, code> était juste après tout. Et pour des raisons de logique, comment une entrée d'un utilisateur pourrait-elle visiter la boutique pour la première fois dans les deux listes !!! Ne soyez pas hâtré compagnon. Bonne chance.
@JQsoft - Qu'est-ce qui est intéressant maintenant, c'est que mon code et votre code produisent le même résultat que l'OP recherche compte tenu de ses données d'échantillon.
@JQsoft - Cela semble être un cas de biais de confirmation. L'OP n'a pas clarifié leur exigence. Ils ont simplement donné un exemple concret - qui correspond à nos deux compréhensions de l'exigence b>. L'OP doit vraiment clarifier ce qu'ils veulent.
@JQsoft - J'ai mis à jour ma réponse pour montrer comment chaque salon des réponses avec l'entrée suggérée de l'OP et mon entrée suggérée (et plus complète).
Pas de problème camarade. Maintenant, déplacons et trouvons un autre.
@JQsoft - C'est un excellent exemple de l'endroit où l'OP pense B> Il a écrit une question claire et où il pense b> Il a clarifié les questions à portée de main, mais en fait, il a fait Ni B>. Ce qui fait si bien fonctionne si bien que les utilisateurs comme nous travaillent dur pour améliorer la qualité des questions et des réponses.
Il y a plusieurs manières pendant que je préfère le vôtre car c'est le plus facile. Merci beaucoup.
@Volfogg - Pas de soucis. Toute chance que vous puissiez clarifier ce que l'exigence exacte était?
@Enigmativitity Il est destiné à sortir une feuille de tous les informations de l'utilisateur avant la journée. Je dois donc combiner ces deux listes en un.
Pouvez-vous élaborer ce dont vous avez besoin en tant que sortie finale
Pouvez-vous conserver des échantillons de données et ce que vous attendiez que la sortie soit dans ces listes?
@Muhammad j'ai mis à jour la question, s'il vous plaît jeter un oeil.
@sriharsha j'ai mis à jour la question, s'il vous plaît jeter un oeil.