J'ai décidé de jeter un coup d'œil rapide sur le côté Linq des choses, par opposition à juste utiliser une boucle de forache droite, mais j'ai du mal à le faire au travail, principalement en raison de datatypes que je crois. Alors j'ai ceci, jusqu'à présent; p>
Argument 1: cannot convert from 'System.Collections.Generic.IEnumerable<DeviceManager_take_2.SiteType>' to 'DeviceManager_take_2.SiteType'
3 Réponses :
Si votre type de retour est un seul:
var selectedSiteType = (from sites in siteTypeList
where sites.SiteTypeID == temp
select sites).ToList();
Pourquoi tu couls tu tolis? Il y a toujours eu un débat sur les mérites de Tolist () par opposition à TOARRAY () et si vous utilisez uniquement la valeur une fois que vous pouvez également laisser cela comme une expression de requête.
En fait, il y a beaucoup d'articles là-bas et des ramblings autour de .tolist / ienumerable et .toarray, les différences de performance étant si minimes qu'ils reposent sur la préférence des utilisateurs, ainsi que du fait que je suis contre la mentalité de "Oh, Je vais certainement toujours utiliser cela une fois ". De plus, je préfère travailler avec une liste que d'un iénumérable / tableau.
Utilisez d'abord / FirstArdefault / simple / SingleFault pour obtenir un élément du type particulier de la collection.
Et j'utilise cela sur le retour Ienumerable de la Linq? Ou ammend-le à la fin de ma requête elle-même?
@ Shane.c vous pouvez faire soit; Le résultat sera le même.
shane,
Je ne vais pas améliorer les réponses précédentes. Ils étaient tous les deux corrects. Je vais essayer d'expliquer un peu à vous, de sorte que vous le comprenez à l'avenir un peu mieux. P>
Que se passe-t-il, lorsque vous écrivez un morceau de code comme: p>
var selectedSiteType = from sites in siteTypeList
where sites.SiteTypeID == temp
select sites;
Cela effectivement effacé beaucoup! Linq semble avoir tellement moins de tracas qu'une boucle de foreach. Tolist () crée-t-il une liste du type de données de ses articles? Ou une liste générique?
@ SHANE.C Eh bien, une liste "générique" est en fait une liste du type de données des éléments. Ce serait une liste non générique (c'est-à-dire une arraylist code>) qui n'est pas du type de données approprié. Il est suffisant d'expérimenter vous-même de répondre à cette question.
Toujours. Je me suis rendu compte que dès que j'avais demandé à Haha. Déjà travaillé.
Est-il supposé être un seul match? Cela devrait fonctionner pour vous:
var choisiSiteType = SiteTyPelist.Singleordfault (S => S.SITETypeid == Temp); code>