LINQ: Helfen Sie mit linq-Abfrage und enthält für ein IEnumerable<string>?
Kann jemand helfen?
Habe ich eine linq-Abfrage, die eingebettet ist innerhalb einer Erweiterung Methode war es die Arbeit als v. RentalStatus war ein String. Ich bin jetzt mit einer Gruppe auf meine ursprüngliche Abfrage (die Abfrage ist sehr Komplex, deshalb will ich es nicht hier).
Dem importante Sache ist, dass v. RentalStatus = IEnumerable daher kann es enthalten Dinge wie
A (meaning active)
R (meaning rented)
U (unavailable)
etc - many more
Erstelle ich eine Liste, was ich möchte, um wieder und speichern Sie diese in statusStringList, so zum Beispiel, können sagen, dass die Liste enthält, und R
Dies ist mein code von vor, wenn die v. RentalStatus war nur ein string, kann mir jemand sagen wie ich das ändern kann.
var statusStringList = rentalStatus.ToList().ConvertAll<string>(st => st.GetStringValue());
return from v in qry
where statusStringList.Contains(v.RentalStatus)
select v;
Wenn es hilft, das ist Teil meiner Abfrage gibt die RentalStatus - Ihr Teil einer Gruppe, die Abfrage aber der RentalStatus ist nicht in der group by -
RentalStatus= g1.Select( j => j.IdRentalStatus).Distinct(),
g1 ist meine Gruppe durch, so dass, wenn Sie sich vorstellen, gibt es 10 "A", 5 "U" .. dann würde es wieder ein ienumerable von A und U ... da bin ich mit Distinct. Nicht 10 und 5 Us
Ich hoffe, ich konnte Sie gut, bitte sagen Sie mir, wenn ich nicht
Ich würde schätzen jede Hilfe, von niemandem ..
Dank
BEARBEITEN
Dies ist meine Erweiterung Unterschrift aber nicht, dass es darauf ankommt.
public static IQueryable<Rentals> WithStatus(this IQueryable<Rentals> qry, IList<Contants.Statuses> rentalStatus)
{
BEARBEITEN
Wie bereits erwähnt bei v. RentalStatus war ein string, es funktioniert, aber nun ist es IEnumerable - also eine Sammlung.. und es Fehler mit diesem
Argument '1': cannot convert from 'System.Collections.Generic.IEnumerable<string>' to 'string'
Danke MArcel, ich habe aktualisiert.. oops
InformationsquelleAutor mark smith | 2009-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn RentalStatus hat sich von einem string zu einem IEnumberable dann ist dein Vergleich 2 Liste... ich denke, das sollte funktionieren:
Sollten Sie auf alle Ferienwohnungen, die einen status haben, der ist in der Liste, die Sie bereitstellen,
Edit:
Ja, ich würde verbringen Sie einige Zeit lernen lambda-Ausdrücke. Scheint, wie Sie verwendet werden, mehr und mehr, und das mit gutem Grund. Hier sind ein paar links für tutorials:
Eine Umfangreiche Untersuchung der LINQ: Lambda-Ausdrücke und Anonyme Typen
.NETTO-Lambda-Ausdrücke – Ressourcen
Ist das wahr? Ich dachte, die Liste der rentalStatuses ist ein parameter in der Methode. Ich dachte deine Abfrage im Grunde würde mir erlauben, um alle Ferienwohnungen, die einen status haben, der passt zu jedem in der Liste, die ich angegeben. Eine Liste lebt von euren Mietobjekt und die andere ist die, die ich übergeben...
Warum die Reihenfolge, in der mine arbeitete. Ich habe einige Fragen:
Verwenden Sie diese zur Abfrage einer Datenbank? Sind Sie in der Lage, Blick auf die tsql-es erzeugt?
Wenn dem so ist, würde ich schauen das tsql und sehen, was der Unterschied ist. Ich würde noch prüfen, mir. Ich hatte Glück, Schätze ich.
Ich habe ein paar änderungen...
Hi danke für die Antwort, ja in der Tat die RentalStatus ist retruned von der db als Ienumerable<string> ... es funktioniert Super.... Noch einmal vielen Dank..
InformationsquelleAutor bytebender
Könnten Sie versuchen, so etwas wie dieses:
ah ich habe gerade bemerkt, dass J. 13.L Antwort funktioniert, aber der Unterschied ist die Reihenfolge der statusStringList und RentalStatus - Sie tauschten um
InformationsquelleAutor John Fisher
Ich bin nicht sicher, aber ich denke, dass für eine
Contains
arbeiten in Linq to SQL muss es sich um ein array von strings (oder ints oder ...) und nicht IEnumerable. Würde ich so versuchen:Kann es andere Themen, obwohl ich nicht sehen, dass viel.
Frage wurde aktualisiert
InformationsquelleAutor Marcel Gosselin
Versuchen Sie dies:
InformationsquelleAutor Gabe Moothart