2009-03-13 7 views
0
Dim goodCustObjList As New List(Of CustomerObj) 
goodCustObjList = DataBLLModule.GetCustomerRecordList(String.Empty) 
Dim custList = From t In goodCustObjList _ 
       Where t.ID.ToString() IsNot Guid.Empty.ToString() _ 
       Select t 

J'ai une liste de CustomerObj et si l'ID (GUID) n'est pas vide, je veux sélectionner cet objet. J'ai fait une requête similaire mais la condition est sur la propriété d'un autre objet (entier) qui correspond si c'est 1 ou 2 puis sélectionnez-la. Est-ce que quelqu'un peut signaler ce que je fais mal sur l'instruction linq ci-dessus? si vous allez tester une condition dans linq. Est-ce que IsNot n'est pas l'instruction correcte pour tester cette condition?Linq: IsNot dans la collecte d'objets

Jack

Répondre

2

« IsNot » en VB signifie pour vérifier si deux références d'objet pointent vers des objets différents. Je ne sais pas pourquoi vous obtenez ceci pour cette syntaxe particulière. Pouvez-vous poster la définition de CustomerObj?

Ce que vous voulez vraiment faire, c'est de comparer directement la propriété .ID.

Where t.Id <> Guid.Empty 

Cette méthode est la plus fiable pour comparer les valeurs GUID. La comparaison de leurs valeurs String est beaucoup plus lente et peut être rejetée si vous effectuez accidentellement une comparaison sensible à la casse.

+0

Tout à fait raison sur ce commentaire, c'est la bonne façon. –

+0

c'est tout. Merci pour l'aide – Jack

Questions connexes