Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# [C#] IEnumerable.ToList<>() geht nicht (https://www.delphipraxis.net/141459-%5Bc-%5D-ienumerable-tolist-geht-nicht.html)

jfheins 9. Okt 2009 11:54


[C#] IEnumerable.ToList<>() geht nicht
 
Hallo :)

Folgendes Compiliert:
Code:
            Parts = new Dictionary<int, xmlPart>();
            parts_combobox.DataSource = Parts.Values.ToList<xmlPart>();
das gleiche an einer anderen Stelle aber nicht mehr:
Code:
public Dictionary<int, GraphNode> Nodes { get; private set; }
       
        // TODO: löschen. (Nur für Demozwecke)
        public List<GraphNode> NodeList
        {
            get
            {
                return Nodes.Values.ToList<GraphNode>();
            }
        }
Zitat:

Fehler 1 "System.Collections.Generic.Dictionary<int,iwb_cla sses.GraphNode>.ValueCollection" enthält keine Definition für "ToList", und es konnte keine Erweiterungsmethode "ToList" gefunden werden, die ein erstes Argument vom Typ "System.Collections.Generic.Dictionary<int,iwb_cla sses.GraphNode>.ValueCollection" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) Y:\iwb_classes\iwb_classes\workplan.cs 21 37 iwb_classes
Warum?

Reinhardtinho 9. Okt 2009 12:13

Re: [C#] IEnumerable.ToList<>() geht nicht
 
Code:
using System.Linq;

Dax 9. Okt 2009 12:20

Re: [C#] IEnumerable.ToList<>() geht nicht
 
Und entsprechend auch System.Core einbinden, wenn das nicht bereits (oder standardmäßig) geschehen ist :)

jfheins 9. Okt 2009 14:22

Re: [C#] IEnumerable.ToList<>() geht nicht
 
Zitat:

Zitat von Reinhardtinho
Code:
using System.Linq;

Danke, hat geklappt :-)

@Dax: System.Core hat er nicht gefunden ...

OregonGhost 9. Okt 2009 16:25

Re: [C#] IEnumerable.ToList<>() geht nicht
 
Nebenbei, kann man das Typ-Argument bei Enumerable.ToList<T>() nicht weglassen? Das sollte der Compiler eigentlich herleiten können. Vermeidet unnötige Wiederholungen und erleichtert eine Änderung des Typs.

Aber das hat natürlich nichts mit der Frage zu tun ;)

Dax 9. Okt 2009 16:31

Re: [C#] IEnumerable.ToList<>() geht nicht
 
heinz: Dann hast du ein Problem. Versuche mal, das Framework erneut zu installieren, oder die Assembly mit vollem Pfad anzugeben, oder die Konfigurataion zu ändern. Vielleicht wird die Assembly nicht gefunden, weil du kein 3.5-Profile benutzt.

Oregon: doch, kann man. Der Compiler macht aus a.ToList() ein Enumerable.ToList(a), und damit kann die Typinferenzengine wieder arbeiten. In der Regel braucht man für Enumerable.* keine generischen Parameter, das wird alles inferiert.

jfheins 9. Okt 2009 17:08

Re: [C#] IEnumerable.ToList<>() geht nicht
 
Zitat:

Zitat von Dax
heinz: Dann hast du ein Problem. Versuche mal, das Framework erneut zu installieren, oder die Assembly mit vollem Pfad anzugeben, oder die Konfigurataion zu ändern. Vielleicht wird die Assembly nicht gefunden, weil du kein 3.5-Profile benutzt.

Wieso? Es funktioniert doch alles perfekt?

Wenn ich "using System.Core;" dazuschreibe, sagt er
Zitat:

Fehler 1 Der Typ- oder Namespacename "Core" ist im Namespace "System" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:\...\Documents\Visual Studio 2008\Projects\...\Form1.cs 10 14 iwb_example
Ach ja - Rechts im Projektmappen-Explorer unter verweise ist System.Core aufgeführt ;)

Khabarakh 9. Okt 2009 17:10

Re: [C#] IEnumerable.ToList<>() geht nicht
 
Zitat:

Zitat von jfheins
System.Core hat er nicht gefunden ...

Dax meinte die System.Core.dll, denn es hieß ja ;) :
Zitat:

Fehlt eine Using-Direktive oder ein Assemblyverweis?
System.Linq.Enumerable in System.Core

Edit: Böh, Editierer :P .


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz