LINQ => Lambda :)

0

Witam, chciałbym przekształcić swoje zapytania LINQ na wyrażenie lambda, niestety nie za bardzo wiem jak to zrobić, mam przykładowo metodę, która zwróci listę obiektów, których pewna właściwość będzie identyczna jak podany przez nas parametr:

public static List<Book> GetBook(List<Book> list, string title)
        {

            List<Book> sb = (from Book in list
                             where (Book.getTitle().Equals(title))
                             select Book).ToList();



            return sb;
        }

Lub metodę, która zwróci listę książek "pasujących" do podanego przez nas przedziału czasowego.

 public static List<Book> GetBooks(List<Book> list, int minYear, int maxYear)
        {
            List<Book> sb = (from Book in list
                             where (Book.getIssueYear() >= minYear && Book.getIssueYear() <= maxYear)
                             select Book).ToList();

            return sb;
        }

Mam problem z przerobieniem tego na lambdę. Sama sygnatura metody może wyglądać identycznie. Nie wiem co jednak wrzucić do bloku tej metody. Z góry dzięki za pomoc. Pozdrawiam.

0

chciałbym przekształcić swoje zapytania LINQ na wyrażenie lambda

Po co? Nic tym nie zyskasz.

            List<Book> sb = (from Book in list
                             where (Book.getIssueYear() >= minYear && Book.getIssueYear() <= maxYear)
                             select Book).ToList();
 
            return sb;

coś takiego:

return list.Where(b => b.getIssueYear() >= minYear && b.getIssueYear() <= maxYear).ToList();
0
list.Where(book => book.getTitle().Equals(title)).ToList()

Drugie analogicznie.
Poczytaj tez o konwencji nazewnictwa w .Net i używaniu właściwości.

0

Wyprzedziliście mnie ...

 
  List <Book>sb = list.Where(item => item.getTitle() == title).ToList();

            return sb;

Czy coś takiego byłoby ok?

Azarien - wiem , że nic nie zyskam, takie mam zadanie , muszę po prostu pewne metody przerobić na Lambdę :)

0

Co to znaczy "przerobić LINQ na lambdę"?
O takie coś chodzi?

private static Func<Book, bool> GetBookFilter(string title)
{
    return book => book.Title == title;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1