Bei einer Liste von Objekten einer Klasse (List<Type1>
)LINQ starten und stoppen Segmente in der Liste der Liste <T> Elemente
item1.isbool = true, beat = 1
item2.isbool = true, beat = 1.333
item3.isbool = true, beat = 1.666
item4.isbool = false, beat = 2
item5.isbool = false, beat = 3
item6.isbool = false, beat = 4
item7.isbool = false, beat = 5
item8.isbool = true, beat = 5.333
item9.isbool = true, beat = 5.666
Ich mag würde die Start- und Stoppwerte in der N-Tole Gruppe erhalten (von variabler Größe) auf eine Liste von einer zweiten Klasse (List<Type2>.Add()
)
item1.tuplet = start
item3.tuplet = stop
item8.tuplet = start
item9.tuplet = stop
Die Reihenfolge der Elemente keine Rolle hinzuzufügen. MoreLinq als eine Option, aber nicht sicher, welche Art von Operation ich ausführen muss, um diese Werte zu erhalten. Es könnte entweder eine Partition oder eine Art GroupBy sein, aber das scheint nicht zu funktionieren.
Meine Endergebnissen ich am Ende brauchen werden
List2.Add(new Object() {Tuplet = TupletType.Start});
List2.Add(new Object() {Tuplet = TupletType.None});
List2.Add(new Object() {Tuplet = TupletType.Stop});
List2.Add(new Object() {Tuplet = TupletType.None});
List2.Add(new Object() {Tuplet = TupletType.None});
List2.Add(new Object() {Tuplet = TupletType.None});
List2.Add(new Object() {Tuplet = TupletType.None});
List2.Add(new Object() {Tuplet = TupletType.Start});
List2.Add(new Object() {Tuplet = TupletType.Stop});
ich nicht bin völlig klar, was Sie zu tun versuchen. Es wäre hilfreich, wenn Sie Code schreiben könnten, der tatsächlich kompiliert würde, und vielleicht alle Versuche, die Sie bei der Lösung Ihres Problems unternommen haben. – juharr
Der Arbeitscode, den ich zu dieser Sequenz bekommen muss, ist ein bisschen zu eng verbunden, um dorthin zu gelangen. Ich füge etwas hinzu, um zu zeigen, was ich stattdessen erwarte. – Manchuwook
Ich würde nur durch die Liste mit einer for-Schleife durchlaufen, keine Notwendigkeit für linq. Wenn Sie ein "True" finden, speichern Sie es als Start. Führen Sie das Programm aus, bis das nächste falsch ist. Wenn ja, setze es als Stopp. – Carra