2016-03-22 14 views
0

Also habe ich folgendes und es scheint falsch.Wie erstellt man eine Instanz eines 2D-Arrays in C#?

var classAsm = assembly.GetExportedTypes().Where(o => o.FullName == "iControl.CommonAddressPort").First(); 
Array propertyOfPorts = Array.CreateInstance (classAsm, 1,1); 

Was ich zu Werten zuweisen propertyOfPorts erreichen wollte, da es 2 (Adresse - String und Port - lang) wie diese:

propertyOfPorts.address = "12.2.2.2"; 
propertyOfPorts.port = 80; 

Jede Hilfe sehr geschätzt wird.

Antwort

1

Ich persönlich würde zuerst eine Klasse machen, dann eine Liste verwenden.

public class PortProperties { 
    public String Address { get; set; } 
    public long Port { get; set; } 
} 

Dann die Liste initialisieren:

var propertiesOfPorts = new List<PortProperties>(); 

Dann fügen Sie es:

propertiesOfPorts.add(new PortProperties { 
    Address = "12.2.2.2", 
    Port = 80 
}); 

dann verwenden:

PortProperties firstPort = propertiesOfPorts[0]; 
String address = firstPort.Address; 
long port = firstPort.Port 

Mit dieser Methode ist es leicht zu definieren genau was du willst. Ansonsten werden 2D-Arrays oder 3D-Arrays wirklich verwirrend. Zum Beispiel, vielleicht für jeden dieser Ports muss ich eine andere Liste von anderen solchen Informationen in Bezug auf diesen bestimmten Port zu definieren (daher macht dies zu einem möglichen 3D-Array), würde ich einfach ein Listenobjekt in die PortProperties-Klasse, einfach und einfach verstehen.

+0

Vielen Dank @Gerneio, das einzige ist, dass diese Eigenschaften bereits in "iControl.CommonAddressPort" vorhanden sind, die eine dritte teilweise dll (SDK) ist. Aber ich denke, du hast mir die Idee eröffnet, wie ich das angehen soll. – PinoyDev