Beste mensen,
Ik heb een eigen collectie gemaakt voor mijn eigen objecten, code hieronder:
Nu wil ik graag met link wat kunnen doen met mijn collectie.
echter als ik onderstaande code uitvoer:
Dan geeft hij een compile fout bij die tweede regel.
Want 'co' is van het type CustomObjectCollection, en niet van het type CustomObject
Nu is het dus zo dat linq niet ziet dat mijn custom collection een collection is, en gaat dus neit door de objecten heen itereren (ondanks de enumerators)
Hoe fix ik dit?
Ik heb een eigen collectie gemaakt voor mijn eigen objecten, code hieronder:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| public class CustomObjectCollection : IEnumerable, IEnumerable<CustomObject> { private List<CustomObject> _objecten = new List<CustomObject>(); public IEnumerator GetEnumerator() { return (_objecten as IEnumerable).GetEnumerator(); } IEnumerator<CustomObject> IEnumerable<CustomObject>.GetEnumerator() { return (_objecten as IEnumerable<CustomObject>).GetEnumerator(); } } public class CustomObject { public string getString() { return "ik ben een string"; } } |
Nu wil ik graag met link wat kunnen doen met mijn collectie.
echter als ik onderstaande code uitvoer:
C#:
1
2
3
| CustomObjectCollection _objs = getObjecten(); //<-- neem maar even aan dat deze gewoon een lijst vult. List<string> woei = from co in _objs select co.getString(); |
Dan geeft hij een compile fout bij die tweede regel.
Want 'co' is van het type CustomObjectCollection, en niet van het type CustomObject
Nu is het dus zo dat linq niet ziet dat mijn custom collection een collection is, en gaat dus neit door de objecten heen itereren (ondanks de enumerators)
Hoe fix ik dit?
[ Voor 14% gewijzigd door Woy op 21-04-2011 10:37 . Reden: Verkeerde bericht geedit :X ]
This message was sent on 100% recyclable electrons.