W ramach ćwiczeń Linq próbuję sobie rozwiązywać prostsze zadanka z hackerranka jednolinijkowcami. Ale nie jestem w stanie znaleźć jakichś bardziej zaawansowanych przykładów w internecie. Wszędzie są tylko opisy jak działa dana funkcja. Jeśli ktoś zna jakieś źródło takich przykładów to chętnie przygarnę.
A teraz mój problem.
Mam napisać funkcję, która na wejście przyjmuje dwie listy intów tej samej długości.
Funkcja ma zwrócić również listę intów, w której pierwszy wyraz ma mówić ile razy wyraz pierwszej listy był większy niż odpowiadający wyraz drugiej listy.
Drugi wyraz odwrotnie.
Jeśli odpowiadające sobie wyrazy są równe to nie zwiększamy żadnego z wyrazów listy wynikowej.
Przykład:
a = {1, 2, 3}
b = {2, 2, 3}
1 < 2
2 = 2
3 = 3
wynik = {0, 1}
Mam takie cuś:
public static List<int> Resolve(List<int> a, List<int> b)
{
var ar = a.Select(x => x).Count(x => x > b[a.IndexOf(x)]);
var br = b.Select(x => x).Count(x => x > a[b.IndexOf(x)]);
return new List<int> {ar, br};
}
I nie mogę dojść do tego jak można użyć Linq, żeby jedno zapytanie od razu zwracało wynikową listę.