yield ist das keyword, dass mit den iteratoren eingeführt wurde.
Iteratoren geben dir die Möglichkeit durch eine in der Art nicht existierende oder für die benutzende Klasse zugängliche Liste zu iterieren.
Innerhalb des iterators entspricht jedes yield einem neuen Datensatz, den der aufrufende Enumerator bekommt.
beispiel:
Delphi-Quellcode:
uses
System.Collections.*;
type
MyStringCollection = public class(List<String>)
public
method StartsWith(firstLetters : String) : IEnumerable<String>; iterator;
end;
implementation
method MyStringCollection.StartsWith(firstLetters : String) : IEnumerable<String>;
begin
for Item : String in ToArray() do
if Item.StartsWith(firstLetters) then
yield (Item);
end;
Delphi-Quellcode:
class method ConsoleApp.Main;
begin
var list := new MyStringCollection();
list.Add('Hallo');
list.Add('Miep');
list.Add('Mjsfwwoif');
list.Add('grghth');
list.Add('Mieifrjg');
list.Add('Hallihallo');
for Item : String in list.StartsWith('M') do
Console.WriteLine(Item);
Console.ReadLine();
end;
Output
Miep
Mjsfwwoif
Mieifrjg
Btw: Davon hier wird mir ganz schlecht!
Zitat:
Sowas war/ist auch ein paar mal in deinem MsHelp2 Code drin und ich wette, es hatte die damaligen ThreadExceptions genauso geschluckt wie ein paar andere Glitches...
(Manchmal will dein AddIn die hXs aktualisieren, wenn ich #d
schließe.
)
Mit der Sortierung machst du mal lieber einen neuen thread auf und postest das Interface von dem HxiDings...