Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
[3.5] casten von Linq-Query Ergebnissen
spacer
Autor Nachricht
MHA
Hält's aus hier

Beiträge: 2
Dabei seit: 23.10.2009



BeitragVerfasst: Fr 23.10.09 12:33 
.NET Version: 3.5
Antworten mit Zitat Beitrag melden
Hallo!

Angenommen, es existieren folgende Klassen:

ausblenden C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public class A
{
public bool prop1 { get; set; }
public string prop2 { get; set; }
...
}

public class B
{
private List<A> _alleA;

// liefert alle Instanzen der Klasse A, für die gilt A.prop1 == param
public List<A> GetAllA(bool param)
{
[b]IEnumerable<A>[/b] result = _alleA.Where(obj => obj.prop1 == param).Select(obj => obj);
[b]return ????[/b]
}
...
}


Wie bekomme ich das Ergebnis der Linq-Abfrage am elegantesten in das richtige Format?
Oder ist es doch einfacher einfach ein Delegate

ausblenden C#-Quelltext markieren
1:
_alleA.FindAll(delegate(A obj) { return (obj.prop1 == param); });


zu benutzen?

Hoffe ihr könnt mir helfen?!

Gruß
Marc
Private Nachricht sendenPosting in privater Nachricht zitieren
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Co-Administrator

Beiträge: 5179
Erhaltene Danke: 2
Dabei seit: 23.07.2002
Wohnort: Pliezhausen

Windows 7 , Server 2008 R2
D7 Pro, VS.NET 2010 (C#)
BeitragVerfasst: Fr 23.10.09 14:23  Antworten mit Zitat Beitrag melden
Das Select am Ende kannst Du weg lassen, Where liefert in IEnumerable<A> zurück. Willst Du daraus eine List generieren, musst Du eine neue List mittels new List<A>(result) erzeugen, allerdings bringt Dir das nur etwas, wenn Du später wirklich Änderungen vornehmen willst. Ansonsten reicht auch das IEnumerable.
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
MHA
Hält's aus hier

(Threadstarter)

Beiträge: 2
Dabei seit: 23.10.2009



BeitragVerfasst: Fr 23.10.09 14:32  Antworten mit Zitat Beitrag melden
user profile iconUGrohne hat folgendes geschrieben Zum zitierten Posting springen:
Das Select am Ende kannst Du weg lassen, Where liefert in IEnumerable<A> zurück.


Danke für den Tip!

Die Lösung für mein Problem ist .ToList()! Aber manchmal sieht man halt den Wald vor lauter Bäumen nicht!
Private Nachricht sendenPosting in privater Nachricht zitieren
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Co-Administrator

Beiträge: 5179
Erhaltene Danke: 2
Dabei seit: 23.07.2002
Wohnort: Pliezhausen

Windows 7 , Server 2008 R2
D7 Pro, VS.NET 2010 (C#)
BeitragVerfasst: Fr 23.10.09 16:32  Antworten mit Zitat Beitrag melden
user profile iconMHA hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconUGrohne hat folgendes geschrieben Zum zitierten Posting springen:
Das Select am Ende kannst Du weg lassen, Where liefert in IEnumerable<A> zurück.


Danke für den Tip!

Die Lösung für mein Problem ist .ToList()! Aber manchmal sieht man halt den Wald vor lauter Bäumen nicht!

Auch eine Idee :).
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home