Linq chaîne de retour tableau
///<summary>
///Returns list of popular searches
///</summary>
public static string[] getPopularSearches(int SectionID, int MaxToFetch)
{
using (MainContext db = new MainContext())
{
return (from c in db.tblSearches where c.SectionID == SectionID && c.Featured select new[] { c.Term });
}
}
J'ai regardé d'autres questions, mais ils semblent être un peu différent, j'obtiens l'erreur:
Cannot implicitly convert type 'System.Linq.IQueryable<string[]>' to 'string[]'
Je sais que c'est probablement simple, quelqu'un pourrait-il point de ce qui ne va pas ici, s'il vous plaît?
- Est-il une raison particulière pour laquelle vous avez besoin de retourner un tableau? IEnumerable<String> serait préférable, dans la plupart des cas, à moins que le code d'appel exige expressément un tableau (peu probable)
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous tentez de retour d'une méthode déclarée pour retourner un
string[]
, mais vous êtes de retour d'une requête - ce qui n'est pas une chaîne en elle-même. La façon la plus simple de convertir une requête à un tableau est d'appeler leToArray
méthode d'extension.Cependant, comme vous êtes déjà sélection un tableau de chaîne pour chaque élément dans la requête, qui serait effectivement de retour
string[][]
. Je soupçonne que vous voulez vraiment pour sélectionner une chaîne unique par élément de requête, puis convertir le tout dans un tableau, c'est à dire un code comme ceci:Noter que:
Take
afin d'utiliser lemaxToFetch
paramètreVous êtes en train d'essayer de revenir un sans texture ni matériau de la requête. La requête n'est évaluée que quand il est énuméré. Heureusement pour vous, la méthode ToArray prendre la douleur hors de l'énumération et de la ranger. Tout simplement en l'ajoutant à la fin de votre requête doit tout régler.
MODIFIER
De regarder plus en détail, peut-être:
aplatir les résultats de votre requête, ou encore (de moins en moins de manière redondante):
...select new{c.Term,c.SectionID}
Ajouter .ToArray() à la fin de l'instruction de retour.