簡體   English   中英

在 C# 中創建通用列表類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM