我正在研究一些大学材料,我有以下问题
设计并实现一个专门用于存储公司所有对象的集合类 根据类层次结构的文档,继承自任何.NET合适的集合类(例如, ArrayList类,或通用List)。该集合是实现单一方法 第2页,共5页 GetDataOfAll()返回一个字符串,用于连接所有对象的数据 分隔符。 (该方法稍后将用于在合适的输出占位符中显示数据)
我写了这个:
class MainList : List<Document>
{
public string GetDataFormAll()
{
string text = null;
foreach (Document data in MainList)
{
text += data.GetData() + "\n";
}
return text;
}
}
这是实现此目的的正确方法吗?
foreach (Document data in MainList)
Thsi si给我一个错误,它告诉我MainList的类型不正确。我该如何实现这一点。
答案 0 :(得分:2)
您需要在自己的Document
)集合中循环this
。由于List<T>
为Enumerable<T>
,您只需在foreach
上写一个this
循环:
public string GetDataFormAll() {
string text = null;
foreach (Document data in this) {
text += data.GetData() + "\n";
}
return text;
}
(是的,我的代码就像埃及)
答案 1 :(得分:1)
只是另一种更短的方式,不一定更好
public string GetDataFormAll()
{
return string.Join("\n", this.Select(d => d.GetData());
}
当然,您可以使用.Select(GetData)
语法缩短它。
这将不在最后一个元素之后添加\n
。取决于你想要什么。