Das Problem, das Sie konfrontiert sind, ist die verzögerte Ausführung, sollten Sie in der Lage sein, eine Menge von Informationen über diese zu finden, aber im Grunde keine der Code s ausgeführt werden, bis Sie tatsächlich versuchen, Daten aus der IQueryable zu lesen (konvertieren Sie es in eine IEnumerable oder eine Liste oder andere ähnliche Operationen). Dies bedeutet, dass dies alles geschieht, nachdem die foreach beendet ist, wenn i auf den endgültigen Wert gesetzt ist.
Wenn ich mich richtig erinnere, können Sie eine neue Variable innerhalb der for-Schleife wie folgt initialisieren:
foreach (int i in arr1)
{
int tmp = i;
query = query.Where(q => (q.f_id1 == tmp || q.f_id2 == tmp || q.f_id3 == tmp));
}
Durch die Aufnahme in eine neue Variable, die in jeder Schleife neu erstellt wird, sollte die Variable nicht geändert werden, bevor Sie die IQueryable
.
3 Stimmen
Welcher "Output"? Hier wird nichts ausgegeben...