Hinzufügen einer Liste Element in einer anderen Liste
Ok, ich habe eine Klasse, die der folgenden ähnelt...
public class Order
{
private Guid id;
[DataMember]
public Guid ID
{
get { return id; }
set { id = value; }
}
private List<Items> orderItems;
[DataMember]
public List<Items> OrderItems
{
get { return orderItems; }
set { orderItems= value; }
}
}
public class Items
{
private string itemName;
[DataMember]
public string ItemName
{
get { return itemName; }
set { itemName = value; }
}
}
Wenn ich den Verweis in meinem code habe ich eine Methode, die in einer "Order" - Liste als parameter.
ACME.Order newOrder = new ACME.Order();
ACME.Items newItems = new ACME.Items();
newOrder.ID = xxx
newItems.ItemName = xxx
SendOrderWithItemsFunction(newOrder)
Den oben funktioniert gut, allerdings habe ich nicht eine Funktion hinzufügen, die für meine Artikel, damit ich etwas tun kann, wie die folgenden
newOrder.Items.Add(newItem);
und
newOrder.Items = newItems
wird nicht funktionieren, weil es sagt, es kann nicht implizit konvertiert newOrder.Elemente newItems[].
Was Fehlt?
InformationsquelleAutor Kuruption | 2009-12-04
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, ich könnte etwas fehlen, aber
newOrder.OrderItems.Add(newItem)
sollte gut funktionieren, nach was Sie in Ihrem post.Nur einige andere Fehler Dinge:
Die Pluralisierung der "Elemente" - Klasse ist komisch, wenn es nur einen einzigen Punkt. Dies ist wahrscheinlich der Grund, dass es aussah "ok", um die Zuordnung eines Elements zu einer Liste Eigenschaft.
Können Sie haben, schneiden Sie es aus Ihrem post, aber jede Klasse, die serialisiert wird, der von der WCF müssen gekennzeichnet werden als eine "DataContract", nicht nur die Mitglieder der Klasse.
Beim initialisieren Objekte wie dieses, ich denke, es macht es viel cleaer zu verwenden Geben Sie Initialisierungen:
Was Sie zu tun haben ist eine add-Funktion in Ihrem
Order.OrderItems
Eigenschaft:können Sie auch eine ganze Liste von Elementen zu Ihrem OrderItems:
Sollten Sie in der Lage zu tun:
Wenn Ihr newItems[] ist ein array, müssen Sie dies tun:
Haben Sie erklärt
newItems
alsACME.Items
geben, aber dieOrderItems
Eigentum IhrerOrder
Klasse ist einList<Items>
. Diese Typen sind nicht übertragbar von einem auf den anderen direkt. Damit eine Zuordnung dernewOrder.OrderItems = newItems
ist wie der Versuch zu sagenList<Items> = Items
. Das ist nicht möglich auf der Grundlage der Klassen, die oben beschriebenen. Stattdessen müssen Sie zu der Liste hinzufügen.Wenn du eine Liste innerhalb einer Liste und die Add () - Methode fehlt, ist ein workaround, um eine neue Liste, fügen Sie die Elemente, dann die innere Liste auf die neue Liste. Statt:
..verwenden..