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();
}
}
答案 0 :(得分:2)
看起来你有一个名为MyClass
的{{1}}列表,对于它上面的每个项目,你想要调用SampleList
,并创建一个字符串。你真的不需要f_ToString
,尝试(在.Net 4.0上):
Aggregate
在.Net 3.5上,Concat需要一个数组,因此它将是:
string agg = String.Concat(SampleList.Select(myClass => myClass.f_ToString()));
如果您仍然想使用Aggregate,虽然这里没有充分的理由,但应该写成:
string agg = String.Concat(
SampleList.Select(myClass => myClass.f_ToString()).ToArray()
);
请注意,此处string agg = SampleList.Aggregate("",
(counter, next) => counter + next.f_ToString());
是一个字符串,因此您无法在其上调用counter
。
最后请注意,我热烈建议您为变量选择更好的名称。
答案 1 :(得分:1)
您尝试为方法f_ToString()分配值。将 + = 替换为 +
int AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() + next.f_ToString());
答案 2 :(得分:1)
这
int AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() += next.f_ToString());
更改为
int AggCount = SampleList.Aggregate((counter, next) => counter.f_ToString() + next.f_ToString());
因为你使用assign运算符而不是concat string