[英]Create a Generic List Class in C#
我正在研究一些大學材料,我有以下問題
設計並實現一個集合類,專用於按照類層次結構存儲公司文檔的所有對象,繼承自任何 .NET 合適的集合類(例如 ArrayList 類或通用列表)。 該集合將實現一個方法 Page 2 of 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)
這給了我一個錯誤,它告訴我 MainList 的類型不正確。 請問我該如何實現。
您需要循環遍歷您自己( this
)集合中的Document
。 由於List<T>
是Enumerable<T>
,您可以簡單地在this
編寫一個foreach
循環:
public string GetDataFormAll() {
string text = null;
foreach (Document data in this) {
text += data.GetData() + "\n";
}
return text;
}
(是的,我像埃及人一樣編碼)
只是另一種更短的方式,不一定更好
public string GetDataFormAll()
{
return string.Join("\n", this.Select(d => d.GetData());
}
當然,您可以使用.Select(GetData)
語法進一步縮短它。
這不會在最后一個元素后添加\\n
。 取決於你想要什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.