Ich habe eine Liste von Objekten, die ich gruppieren möchte. Objekte haben eine Liste Parameter, und während die Gruppierung möchte ich die Summe der Listen wie diese machen:Verwenden von Linq zu gruppieren und Summe Liste <int> (Zip?)
for(int i=0;i<MyList1.Count();i++)
{
StatutOperations[i]=StatutOperations1[i]+StatutOperations2[i]...
}
Vorerst Linq verwenden Ich habe folgendes:
liste_rep = liste_rep.GroupBy(l => l.Nom)
.Select(cl => new Repere
{
Quantite = cl.Sum(c => c.Quantite),
IdAff = cl.First().IdAff,
ID = 0,
ListeOperations = cl.First().ListeOperations,
StatutOperations = cl.Zip(StatutOperations)//First().StatutOperations
}).ToList();
Die Linie machen Problem ist, der letzte, ich habe gefunden, wie man Zip-Funktion verwendet, um zwei Tabellen summieren, aber was, wenn ich es verwenden möchte, gruppiert Listen?
Bearbeiten: StatusOperations ist eine Liste von Ganzzahlen, konkret liste_rep ist eine Liste von Details, Details haben eine Liste von n Operationen, und StatusOperations bestimmt, wie viele Details für jede Operation betrieben wurden.
Beispiel: ListOperations = schneiden, bohren, PAINT StatusOperations = 20,20,10
Das bedeutet 20 Details geschnitten werden, 20 sind gebohrt und 10 sind bemalt ich gruppieren möchten die Liste der Details bekommen Summen für jede Operation.
Edit 2:
Vorerst nur ich es macht mir die Gruppierung zu tun gelänge:
liste_rep = liste_rep.OrderBy(p => p.Nom).ToList();
if (liste_rep.Count()>1)
{
totalStatut = liste_rep[0].StatutOperations.ConvertAll(s => s = 0);
string oldRep = "";
Repere repere = new Repere();
foreach (Repere rep in liste_rep)
{
if (rep.Nom!=oldRep)
{
newListRep.Add(repere);
repere = new Repere();
repere.Nom = rep.Nom;
repere.StatutOperations = rep.StatutOperations;
}
else
{
repere.StatutOperations=repere.StatutOperations.Zip(rep.StatutOperations, (x, y) => x + y).ToList();
}
oldRep = rep.Nom;
}
}
Bitte erläutern Sie, was 'StatutOperations' ist. Zeigen Sie einige Beispieldaten der verschiedenen Tabellen und der gewünschten Ausgabe an. 'Zip' wird verwendet, um zwei Sammlungen nach dem Index des Artikels zu verbinden - zuerst mit der ersten, Sekunde mit der zweiten ... –
Welchen Fehler bekommen Sie? – derloopkat
Gilad Green Ich habe den Beitrag bearbeitet, derloopkat Ich habe noch keine Fehlermeldung, da ich es nicht geschafft habe, die gute Syntax dafür zu bekommen. –