Ausgabe
public static IQueryable<CustItemTrades> SeriesIdFilter(this
IQueryable<CustItemTrades> trades, List<short?> lastPriceDocs) =>
lastPriceDocs != null ? trades.Where(c => lastPriceDocs.Contains(c.SeriesId)) :
// what to return here if my List<short> == null
Wenn meine Liste null ist, bedeutet dies, dass ich in meiner Abfrage nichts zu filtern habe, was ich dann zurückgeben soll? Ich habe es auf diese Weise versucht, aber es funktioniert nicht
Enumerable.Empty<CustItemTrades>().AsQueryable();
Lösung
Ihr Ansatz funktioniert nicht, weil Enumerable.Empty
nichts zurückgegeben wird, aber Sie möchten alles zurückgeben, wenn ich Ihre Anforderung richtig verstanden habe .
Wenn meine Liste null ist, bedeutet dies, dass ich in meiner Abfrage nichts zum Filtern habe
Wenn Sie nichts zu filtern haben, dann filtern Sie nicht.
public static IQueryable<CustItemTrades> SeriesIdFilter(this IQueryable<CustItemTrades> trades, List<short?> lastPriceDocs)
{
if(lastPriceDocs == null)
{
return trades;
}
return trades.Where(c => lastPriceDocs.Contains(c.SeriesId));
}
Ändern Sie die Abfrage nicht so, dass die Where
Übereinstimmungen immer gegeben sind, geben Sie einfach alles zurück.
Beantwortet von – Tim Schmelter
Antwort geprüft von – Mildred Charles (FixError Admin)