Linq Frage

02/06/2010 - 15:23 von peter haus | Report spam
Hallo NG.

Ich halte direkt nach dem lesen von Daten in ein Array,
den Inhalt der "Records" fest.
private static List<ArtikelBuchung> oldList;
oldList = (from ArtikelBuchung a in bu
where a.einheiten > 0 || a.einheitenraumg > 0 select a).ToList();

Das gleiche wie oben, mache ich vor dem speichern.
in die Variable public static List<ArtikelBuchung> newList


jetzt möchte ich die Differenz bilden zwischen dem
laden und speichern der Felder (int) "einheiten" und "einheitenrg" .
dif1=newList.einheiten - oldList.einheiten
dif2=newList.einheitenrg - oldList.einheitenrg

Sowie aus dem Artikel Array einige Felder zusàtzlich erhalten.

Nur mal angedeutet, etwa so.
var xx = from a in newList
select new {a.artikelID, artikel.name, diff=a.einheiten-oldList.einheiten };


Kann mir jemand sagen wie das zu machen ist?
Ich dachte an Linq, bekam aber nichts brauchbares zusammen.
Oder ohne Linq?

Dank und Grüsse
Peter



Anhang:

Das Geneinsane ist die artikelID.

public partial class ArtikelBuchung {
public int artikelID ;
public int anlassID ;
public int einheiten ;
public int einheitenrg ;
public int verfuegbar ;
...
end class


public class Artikel {
public int artikelID
public string name
public string details
public string einheit
public int gesperrt
public string lieferant
public string lagerplatz
...
end class

public static Artikel[] artikel
 

Lesen sie die antworten

#1 Christoph Basedau
02/06/2010 - 15:43 | Warnen spam
On 2 Jun., 15:23, peter haus
wrote:

Ich halte direkt nach dem lesen von Daten in ein Array,
den Inhalt der "Records" fest.

Das gleiche wie oben, mache ich vor dem speichern.
in die Variable  public static List<ArtikelBuchung> newList

jetzt möchte ich die Differenz bilden zwischen dem
laden und speichern der Felder (int) "einheiten" und "einheitenrg" .



Ohne die Details genau gelesen zu haben, kannst Du die
Differenz-Menge zwischen zwei "gleichartigen" Listen bzw
generell IEnumerables mit

var diffListe = eineListe.Except(anderListe);

bilden.
Das sollte nur diejenigen Elemente enthalten,
die nur in der einen ODER der anderen Liste auftauchen.

Eine zweite Überladung der gleichnamigem Meth.
bietet dir die Mglkeit, einen eigenen IEqualityComparer
zu verwenden.

Christoph

Ähnliche fragen