Ich bin neugierig darauf, wie der folgende Code funktioniert, besonders der Teil, der die Delegierten enthält, da ich neu bin. Gibt es auch Engpässe im Code, zum Beispiel wäre die Verwendung eines SortedDictionary besser als die Verwendung einer Liste und dann die Sortierung mit LINQ? Ok, hier ist der Code:Erläutern, wie Delegierte im folgenden Code arbeiten?
public class ColorManager
{
private List<ColorData> colorCodes = new List<ColorData>();
public List<ColorData> ColorCodes
{
get
{
var sortList = from a in this.colorCodes
orderby a.colorCode ascending
select a;
return sortList.ToList();
}
}
public void FillData(DataTable table)
{
for(int row = 0; row < table.Rows.Count; row++)
{
ColorData cData = new ColorData();
string name = table.Rows[row]["Color"].ToString().Trim();
if(!this.colorCodes.Exists(
delegate(ColorData e)
{
return e.ColorCode == name;
}))
{
cData.Add(table.Rows[row]["Color"].ToString());
this.colorCodes.Add(cData);
}
else
{
this.colorCodes.Find(
delegate(ColorData e)
{
return e.ColorCode == name;
}).Count++;
}
}
}
}
Wie könnte es umgestaltet werden, so dass sie teilen würden? – Xaisoft
Sie können eine anonyme Methode überall dort verwenden, wo ein Delegat erwartet wird. Versuchen Sie var matchThisColor = new Func (e => e.ColorCode == Name) ;. –