2016-02-04 51 views
0

綜觀Microsoft.TeamFoundation.VersionControl.Client.VersionControlServerQueryHistory方法重載:VersionControlServer.QueryHistory返回System.Collections.IEnumerable/System.Collections.Generic.IEnumerable

https://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver.queryhistory.aspx?f=255&MSPPError=-2147217396

看來,一些重載返回System.Collections.Generic.IEnumerable<Changeset> 和其他人返回System.Collections.IEnumerable

有一種簡單的方法來一個System.Collections.IEnumerable(含Changeset項目)轉化爲System.Collections.Generic.IEnumerable<Changeset>

回答

1

如果您確定集合只包含ChangeSet項目可以使用LINQ的擴展方法Cast():如果你不能完全確定該集合只包含ChangeSet您可以用另一個LINQ的過濾它

IEnumerable myCollection = ... 
IEnumerable<ChangeSet> myGenericCollection = myCollection.Cast<ChangeSet>(); 

擴展方法OfType()

IEnumerable myCollection = ... 
IEnumerable<ChangeSet> myGenericCollection = myCollection.OfType<ChangeSet>();