2010-12-07 47 views
1
List<MyClass> SampleList = new List<MyClass>() { new MyClass(), new MyClass(), new MyClass() }; 
    string AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() += next.f_ToString()); 
} 

} 

internal class MyClass 
{ 
    public string f_ToString() 
    { 
     Random rnd = new Random(); 
     return rnd.Next(1000).ToString(); 
    } 
} 

alt textproblème de la fonction globale

+3

Qu'essayez-vous vraiment de faire? – LukeH

+0

Quelle est votre question en fait? le message est assez explicite en fait: vous ne pouvez pas utiliser l'appel à une méthode comme quelque chose que vous voulez assigner – PierrOz

+2

En plus du commentaire de Luke: ** Qu'essayez-vous vraiment de faire? ** – Kobi

Répondre

2

On dirait que vous h Ave une liste de MyClass appelé SampleList, et pour chaque élément que vous voulez appeler f_ToString, et de créer une chaîne de tous les. Vous n'avez pas vraiment besoin Aggregate, essayez (sur .Net 4.0):

string agg = String.Concat(SampleList.Select(myClass => myClass.f_ToString())); 

.Net 3.5 qui Concat a besoin d'un tableau, donc ce serait:

string agg = String.Concat(
    SampleList.Select(myClass => myClass.f_ToString()).ToArray() 
    ); 

Si vous ne voulez toujours d'utiliser Aggregate, mais il n'y a pas de bonne raison ici, il faut écrire:

string agg = SampleList.Aggregate("", 
        (counter, next) => counter + next.f_ToString()); 

Notez que counter est une chaîne ici, donc vous ne pouvez pas appeler f_ToString dessus.

En guise de note finale, je vous recommande chaudement de choisir de meilleurs noms pour vos variables.

1

Vous essayez d'attribuer une valeur à la méthode f_ToString(). Remplacer + = avec +

int AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() + next.f_ToString()); 
1

de

int AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() += next.f_ToString()); 

changement

int AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() + next.f_ToString()); 

Becus u utiliser l'opérateur assign au lieu de chaîne de concat

+1

'int AggCount' devrait nous avertir - l'OP essaie probablement de compter quelque chose, et counter devrait probablement être un' int'. – Kobi

+0

!! Oups désolé mal taper. il devrait être 'chaîne AggCount' – Bonshington