130 messaggi dal 18 gennaio 2008
Qualcuno ha idea su come ottimizzare questo ciclo?
foreach (var CampaignUser in CampaignUserList)
{
if (!TotalItemList.Contains(CampaignUser))// bisogna fare l'override del contains
Campaign.Items.Add(CampaignUser);
TotalItemList.Add(CampaignUser);
}
Tove sugli item ho fatto l'override:
public override bool Equals(object obj)
{
var other = (Item)obj;
return this.Utente == other.Utente;//il campo utente è un'intero
}
Su grossi numeri per esempio: 90000 è lentissimo.

Grazie
TOM_YOOX wrote:
Qualcuno ha idea su come ottimizzare questo ciclo?
foreach (var CampaignUser in CampaignUserList)

non usare foreach, ma for con intero. essendo una lista, farà molta differenza
.

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it
130 messaggi dal 18 gennaio 2008
Daniele Bochicchio ha scritto:
TOM_YOOX wrote:
Qualcuno ha idea su come ottimizzare questo ciclo?
foreach (var CampaignUser in CampaignUserList)

non usare foreach, ma for con intero. essendo una lista, farà molta differenza
.


Si effettivamente con un for su un intero è miglirato parecchio. Poi un ulteriore miglioramento l'ho avuto invertendo l'if, in questo modo:
Item CampaignUser;
for (int i = 0; i < CampaignUserList.Count; i++)
{
CampaignUser = CampaignUserList[i];
if (TotalItemList.Contains(CampaignUser))
continue;
Campaign.Items.Add(CampaignUser);
TotalItemList.Add(CampaignUser);
}

Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano

I più letti di oggi

Media
In evidenza
MISC