我需要將不同的IEnumerables發送到Printer
對象。 這個打印機對象然後會在foreach循環內對它們做些什麼。枚舉所有IEnumerable事件
class Printer
{
public Printer(IEnumerable list)
{
foreach (var enumerable in list)
{
//DO STUFF
}
}
}
這讓我發送任何枚舉,如List<T>
到打印機的對象。 如
var list = new List<string> {"myList"};
new Printer(list); //mylist
這工作正常。 但如果我發送一個Dictionary<T, T>
如:
var dictionary = new Dictionary<int, string> {{1, "mydict"}};
new Printer(dictionary); //[1, mydict]
這將有一個鍵和一個值。我想要什麼,但將分開訪問foreach
循環內的Value
屬性。我所能訪問的是可枚舉對象,它沒有我可以使用的屬性。
現在如果數據類型T是包含多個屬性的對象(這適用於這兩個示例)。我如何能夠在我的foreach循環中使用這些屬性?
難道我真的要創建一個構造函數的重載,我可能發送給它的foreach可能的數據類型?
此外,我所需要做的所有foreach中的任何數據類型都不可靠 - 因爲它不會操縱所有內容。儘管如此,我確實需要訪問所有的屬性。
此外,這只是示例代碼,實際上並不是我在應用程序中使用的生產代碼。
你不會在第一個例子中有同樣的問題嗎?畢竟你可以得到一個列表其中T是一個複雜的對象包含幾個屬性? –
2009-10-07 13:19:01
你確定它接受IEnumerable而不是IEnumerable? –
2009-10-07 13:19:41
是的,這是我笨拙地試圖解釋在「現在怎麼辦」的段落。 我會嘗試編輯我的帖子,使其更清晰。 – CasperT 2009-10-07 13:20:15