0
votes

Comment comparer deux listes

J'ai une liste de réponse qui a reçu des utilisateurs comme ci-dessous:

var ListFinalTrueAnswer = (from x in FilteredTrueReceivedAnswerList
                                       select (x.qu_Id, x.ans_Title)).ToList();


0 commentaires

3 Réponses :


3
votes

Créer un hashset avec les ID des questions de réponse vraies. (Pour obtenir une recherche rapide) xxx pré>

que de filtrer votre liste à l'aide de HASHSET, P>

var userAnswers = lstGetUserAnswerIndex.Where(x => trueAnswers.Contains((x._Qu_Id, x._Title)));


7 commentaires

comment ça marche? Si vous avez raison, vous obtenez Hash de quasterid, pas par réponse


@Evilgenius Il n'y a pas de réponse nulle part où je peux voir.


moi aussi) alors c'est bizarre)


@Magnus J'ai besoin de comparer deux champs Quid et d'un titre à partir de deux liste avec chaque orcher. Un champ comparant ne résout pas mon problème.


@ O.Ahmadpoor ​​Dans ce cas, utilisez une tuple de valeur avec les deux propriétés. J'ai mis à jour la réponse.


@Magnus mon projet C # n'a pas de définition pour tohashset ()


@ O.Ahmadpoor ​​Peut-être que vous utilisez une version plus ancienne du cadre? Tohashset est défini: docs.microsoft.com/fr- US / DotNet / API / ... Mais vous pouvez également faire: nouveau hashset <(int, string)> (listfinaltrueAnswer.select (x => (x.qu_id, x.ans_title)); / code>



1
votes
var userTrueAnswer = lstGetUserAnswerIndex.Where(w=> ListFinalTrueAnswer.Any(a=>a.qu_Id == w.qu_Id && a.ans_Title == w.ans_Title));

4 commentaires

Lorsque j'utilise votre code, j'ai une erreur dans (A.Quid et w.ans_title). Erreur est la liste ne contient pas de défense pour qu_id


Peut-être que vous avez un peu de temps différent de w.qu_id et de w.ans_title. Peut-être que w._qu_id et w._title?


Non, il ne récupère pas de champ


Parce que votre champ est privé !!! Changez-le et le champ sera disponible est disponible



0
votes

Premièrement, nous pouvons ajouter des getters publics à notre classe. C'est une meilleure façon de rendre les champs privés et d'accéder à leurs valeurs par des getters publics: xxx pré>

Notre liste d'entrée factice des réponses: p>

lstGetUserAnswerIndex.Where(x => ListFinalTrueAnswer2.Any(y => (y.qu_Id == x.Qu_Id) && (y.ans_Title == x.Title)))


0 commentaires