TimelineMarkerCollection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 TimelineMarker 物件的集合,這些物件可由索引個別存取。 TimelineMarkerCollection 是已排序的清單,其順序是由集合中每個 TimelineMarker 項目的時間值所決定。 如需這如何影響集合 API 的詳細資訊,請參閱。
public ref class TimelineMarkerCollection sealed : IIterable<TimelineMarker ^>, IVector<TimelineMarker ^>
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class TimelineMarkerCollection final : IIterable<TimelineMarker>, IVector<TimelineMarker>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class TimelineMarkerCollection final : IIterable<TimelineMarker>, IVector<TimelineMarker>
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class TimelineMarkerCollection : IEnumerable<TimelineMarker>, IList<TimelineMarker>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class TimelineMarkerCollection : IEnumerable<TimelineMarker>, IList<TimelineMarker>
Public NotInheritable Class TimelineMarkerCollection
Implements IEnumerable(Of TimelineMarker), IList(Of TimelineMarker)
- 繼承
- 屬性
- 實作
Windows 需求
裝置系列 |
Windows 10 (已於 10.0.10240.0 引進)
|
API contract |
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)
|
備註
TimelineMarkerCollection 的集合 API
TimelineMarkerCollection 是已排序的清單,其順序是由集合中每個 TimelineMarker 項目的時間值所決定。 TimelineMarkerCollection 的集合 API 會在內部處理新增至集合的每個新專案,並將它新增至索引位置,以對應至集合中所有 TimelineMarker 專案之所有 Time 值的更新順序。
讓 TimelineMarkerCollection 一律維持以時間為基礎的順序,因此列舉/逐一查看集合會依對應到所播放之媒體資產的 Position 順序,以及 MarkerReached 事件引發的順序,提供 TimelineMarker 值。 否則,如果集合不是 時間排序,則必須先依使用前的時間排序集合。
- 如果您針對 C++) 呼叫 Append (,專案可能會新增至已排序列表的開頭、中間或結尾,視您要新增的 TimelineMarker的時間值而定。
- 如果您針對 C++ 呼叫 InsertAt (,則會忽略 索引 參數) 。 TimelineMarker 專案會加入索引位置,以依 Time 值維護集合的順序。
- 如果您使用適用於 C++) 的 GetAt 方法 (來讀取值,則索引會根據內部邏輯新增專案的方式正確。 但是,由於您並未直接控制該邏輯,所以最好使用適用於 C++ 的 IndexOf (,) 在已排序列表中尋找特定的 TimelineMarker 。
- 如果您使用適用於 C) ++ 的 SetAt 方法 (來設定值,您將會刪除先前在該索引處的值,但集合會自行重新排序以維護 Time 值順序,因此您新增的新 TimelineMarker 可能不在您設定的索引中。 這可能是個好主意,因為您不會確定哪些專案已刪除。 我們建議您不要使用索引器來設定值。
- RemoveAt 會移除指定的索引專案,但當集合索引移位剩餘 的 Time 值時,不會移除可能重複的專案。 我們建議您不要使用 RemoveAt。
列舉 C# 或 Microsoft Visual Basic 中的集合
TimelineMarkerCollection 是可列舉的,因此您可以使用 C# 中的 foreach 等語言特定語法來列舉集合中的專案。 編譯程式會為您執行型別轉換,而且您不需要明確地轉換成 IEnumerable<TimelineMarker>
。 如果您需要明確轉換,例如,如果您想要呼叫 GetEnumerator,請使用 TimelineMarker 條件約束轉換成 IEnumerable<T>。
建構函式
TimelineMarkerCollection() |
初始化 TimelineMarkerCollection 類別的新實例。 |
屬性
Size |
取得集合的大小 (計數) 。 |
方法
Append(TimelineMarker) |
將新項目加入至集合中。 |
Clear() |
移除集合的所有項目。 |
First() |
傳回集合中專案的反覆運算器。 |
GetAt(UInt32) |
傳回位於指定索引處的專案。 |
GetMany(UInt32, TimelineMarker[]) |
擷取單一傳遞反覆運算器中的多個元素。 |
GetView() |
取得集合中的不可變檢視。 |
IndexOf(TimelineMarker, UInt32) |
擷取指定專案的索引。 |
InsertAt(UInt32, TimelineMarker) |
插入指定的專案。 |
RemoveAt(UInt32) |
移除指定之索引處的項目。 |
RemoveAtEnd() |
拿掉集合中的最後一個專案。 |
ReplaceAll(TimelineMarker[]) |
一開始清除集合,然後將提供的數位插入為新專案。 |
SetAt(UInt32, TimelineMarker) |
將位於指定索引處的值設定為指定的 TimelineMarker 值。 |