[FIXED] Was kann ich von einem iQueryable zurückkehren, wenn ich nichts zu filtern habe?

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.Emptynichts 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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like