Autor Beitrag
MHA
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 23.10.09 12:33 
Hallo!

Angenommen, es existieren folgende Klassen:

ausblenden C#-Quelltext
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
1:
_alleA.FindAll(delegate(A obj) { return (obj.prop1 == param); });					


zu benutzen?

Hoffe ihr könnt mir helfen?!

Gruß
Marc
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 23.10.09 14:23 
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.
MHA Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 23.10.09 14:32 
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!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 23.10.09 16:32 
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 :).