我有2個實例:爲什麼.Concat方法的返回值類型看起來有點奇怪:System.Linq.Enumerable +(...)?
foo and bar
他們的類型有:
foo.GetType().ToString()
回報: System.Collections.Generic.List`1 [MyNameSpace.MyClass]
bar.GetType().ToString()
返回: System.Collections.Generic.List`1 [MyNameSpace.MyClass]
當我concatanate它們:
var foobar = foo.Concat(bar);
對GetType()返回 System.Linq.Enumerable + d__71 `1 MyNameSpace.MyClass]
問題: 這是什麼意思?它不應該是IEnumerable?
所以如果IEnumerable的返回值是預期的,並且如果我「返回foo.Concat(bar);」那應該沒問題?不需要「返回foo.Concat(bar).ToArray();」我對麼? –
pencilCake
@pencilCake - 你是對的,不需要'.ToArray()'。需要注意的是,如果你確實調用了'.ToArray()',它會在那個時候迭代並將所有結果放入一個新的'MyClass []'數組中。沒有'.ToArray()'調用,迭代器的執行是不同的。 – CodingWithSpike
也許不符合上下文的問題,但如果WCF服務返回延遲查詢,這是否意味着客戶端將失敗,因爲它不會真正接收查詢結果,而是延遲查詢呢? – pencilCake