2011-06-11 4 views
2

Il semble que je peux utiliser les expressions .Where, .First, etc linq dans une bibliothèque de classes Windows Phone 7, mais pas Contains ou FindIndex. Sont-ils vraiment pas disponibles du tout, ou y a-t-il autre chose que je dois inclure pour y avoir accès?Linq sur windows téléphone

+0

'FindIndex' existe sur' List' et 'Array' mais pas' IEnumerable'. «Contient» devrait être là pour vous. À quoi ressemble votre code? –

Répondre

3

Contient existe déjà dans WP7

System.Linq.Enumerable.Contains 

Pour FindIndex, un travail arround comme cela devrait être suffisant

var index = YourList.IndexOf(YourList.FirstOrDefault(selector)); 
4

Vous devriez être en mesure d'utiliser Contains, mais FindIndex ne fait pas partie de LINQ - c'est une méthode sur List<T> normalement. Cependant, il ne fait pas partie de List<T> in Silverlight.

Si vous rencontrez des problèmes avec Contains, veuillez montrer un code qui échoue.

0

Pour FindIndex, vous pouvez créer la méthode dans un assistant de classe:

public static int FindIndex<TSource>(this List<TSource> list, Func<TSource, bool> match) 
{ 
    return list.IndexOf(list.FirstOrDefault(match)); 
} 

Ensuite, cela fonctionnera normalement.

Questions connexes