Mam dwa obiekty o różnych typach (tj. List<Apple>
i List<Tiger>
). Teraz chcę połączyć właściwości z 2 obiektów, aby wygenerować nowy (anonimowy) typ obiektów.Jak używać LINQ do generowania nowego typu obiektów
Jak osiągnąć z LINQ?
Mam dwa obiekty o różnych typach (tj. List<Apple>
i List<Tiger>
). Teraz chcę połączyć właściwości z 2 obiektów, aby wygenerować nowy (anonimowy) typ obiektów.Jak używać LINQ do generowania nowego typu obiektów
Jak osiągnąć z LINQ?
A więc chcesz połączyć pierwszy element listy jabłek z pierwszym elementem listy tygrysów?
Jeśli tak, i jeśli używasz .NET 4, można użyć Zip
:
var results = apples.Zip(tigers, (apple, tiger) =>
new { apple.Colour, tiger.StripeCount });
Jeśli nie używasz .NET 4, można skorzystać z naszej realizacji Zip
w MoreLINQ.
Jeśli chcesz dopasować jabłka z tygrysami w jakiś inny sposób, prawdopodobnie chcesz użyć dołączyć:
var results = from apple in apples
join tiger in tigers on apple.Name equals tiger.Name
select new { apple.Color, tiger.StripeCount };
Właściwie jestem znalezienie krzyż łączący cecha. Ale nadal dziękuję za pomoc. – Ricky
@Ricky: Jeśli * możesz * używać klauzuli join, zamiast łączenia krzyżowego, będzie to bardziej wydajne. –
jakie są właściwości tam w Apple i Triger – anishMarokey