KeyedCollection<TKey,TItem> Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje abstraktní základní třídu kolekce, jejíž klíče jsou vloženy do hodnot.
generic <typename TKey, typename TItem>
public ref class KeyedCollection abstract : System::Collections::ObjectModel::Collection<TItem>
public abstract class KeyedCollection<TKey,TItem> : System.Collections.ObjectModel.Collection<TItem>
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public abstract class KeyedCollection<TKey,TItem> : System.Collections.ObjectModel.Collection<TItem>
type KeyedCollection<'Key, 'Item> = class
inherit Collection<'Item>
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Serializable>]
type KeyedCollection<'Key, 'Item> = class
inherit Collection<'Item>
Public MustInherit Class KeyedCollection(Of TKey, TItem)
Inherits Collection(Of TItem)
Parametry typu
- TKey
Typ klíčů v kolekci.
- TItem
Typ položek v kolekci.
- Dědičnost
- Odvozené
- Atributy
Příklady
Tato část obsahuje dva příklady kódu. První příklad ukazuje minimální kód potřebný k odvození z KeyedCollection<TKey,TItem>a ukazuje mnoho zděděných metod. Druhý příklad ukazuje, jak přepsat chráněné metody KeyedCollection<TKey,TItem> poskytnout vlastní chování.
příklad 1
Tento příklad kódu ukazuje minimální kód nezbytný k odvození třídy kolekce z KeyedCollection<TKey,TItem>: přepsání GetKeyForItem metody a poskytnutí veřejného konstruktoru, který deleguje na konstruktor základní třídy. Příklad kódu také ukazuje mnoho vlastností a metod zděděných z KeyedCollection<TKey,TItem> a Collection<T> tříd.
Třída SimpleOrder
je velmi jednoduchý seznam požadavků, který obsahuje OrderItem
objekty, z nichž každý představuje položku řádku v pořadí. Klíč OrderItem
je neměnný, důležitým aspektem tříd odvozených z KeyedCollection<TKey,TItem>. Příklad kódu, který používá proměnlivé klíče, viz ChangeItemKey.
using namespace System;
using namespace System::Collections::Generic;
using namespace System::Collections::ObjectModel;
// This class represents a simple line item in an order. All the
// values are immutable except quantity.
//
public ref class OrderItem
{
private:
int _quantity;
public:
initonly int PartNumber;
initonly String^ Description;
initonly double UnitPrice;
OrderItem(int partNumber, String^ description,
int quantity, double unitPrice)
{
this->PartNumber = partNumber;
this->Description = description;
this->Quantity = quantity;
this->UnitPrice = unitPrice;
}
property int Quantity
{
int get() { return _quantity; }
void set(int value)
{
if (value < 0)
throw gcnew ArgumentException("Quantity cannot be negative.");
_quantity = value;
}
}
virtual String^ ToString() override
{
return String::Format(
"{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}",
PartNumber, _quantity, Description, UnitPrice,
UnitPrice * _quantity);
}
};
// This class represents a very simple keyed list of OrderItems,
// inheriting most of its behavior from the KeyedCollection and
// Collection classes. The immediate base class is the constructed
// type KeyedCollection<int, OrderItem>. When you inherit
// from KeyedCollection, the second generic type argument is the
// type that you want to store in the collection -- in this case
// OrderItem. The first type argument is the type that you want
// to use as a key. Its values must be calculated from OrderItem;
// in this case it is the int field PartNumber, so SimpleOrder
// inherits KeyedCollection<int, OrderItem>.
//
public ref class SimpleOrder : KeyedCollection<int, OrderItem^>
{
// The parameterless constructor of the base class creates a
// KeyedCollection with an internal dictionary. For this code
// example, no other constructors are exposed.
//
public:
SimpleOrder() {}
// This is the only method that absolutely must be overridden,
// because without it the KeyedCollection cannot extract the
// keys from the items. The input parameter type is the
// second generic type argument, in this case OrderItem, and
// the return value type is the first generic type argument,
// in this case int.
//
protected:
virtual int GetKeyForItem(OrderItem^ item) override
{
// In this example, the key is the part number.
return item->PartNumber;
}
};
public ref class Demo
{
public:
static void Main()
{
SimpleOrder^ weekly = gcnew SimpleOrder();
// The Add method, inherited from Collection, takes OrderItem.
//
weekly->Add(gcnew OrderItem(110072674, "Widget", 400, 45.17));
weekly->Add(gcnew OrderItem(110072675, "Sprocket", 27, 5.3));
weekly->Add(gcnew OrderItem(101030411, "Motor", 10, 237.5));
weekly->Add(gcnew OrderItem(110072684, "Gear", 175, 5.17));
Display(weekly);
// The Contains method of KeyedCollection takes the key,
// type, in this case int.
//
Console::WriteLine("\nContains(101030411): {0}",
weekly->Contains(101030411));
// The default Item property of KeyedCollection takes a key.
//
Console::WriteLine("\nweekly(101030411)->Description: {0}",
weekly[101030411]->Description);
// The Remove method of KeyedCollection takes a key.
//
Console::WriteLine("\nRemove(101030411)");
weekly->Remove(101030411);
Display(weekly);
// The Insert method, inherited from Collection, takes an
// index and an OrderItem.
//
Console::WriteLine("\nInsert(2, New OrderItem(...))");
weekly->Insert(2, gcnew OrderItem(111033401, "Nut", 10, .5));
Display(weekly);
// The default Item property is overloaded. One overload comes
// from KeyedCollection<int, OrderItem>; that overload
// is read-only, and takes Integer because it retrieves by key.
// The other overload comes from Collection<OrderItem>, the
// base class of KeyedCollection<int, OrderItem>; it
// retrieves by index, so it also takes an Integer. The compiler
// uses the most-derived overload, from KeyedCollection, so the
// only way to access SimpleOrder by index is to cast it to
// Collection<OrderItem>. Otherwise the index is interpreted
// as a key, and KeyNotFoundException is thrown.
//
Collection<OrderItem^>^ coweekly = weekly;
Console::WriteLine("\ncoweekly[2].Description: {0}",
coweekly[2]->Description);
Console::WriteLine("\ncoweekly[2] = gcnew OrderItem(...)");
coweekly[2] = gcnew OrderItem(127700026, "Crank", 27, 5.98);
OrderItem^ temp = coweekly[2];
// The IndexOf method inherited from Collection<OrderItem>
// takes an OrderItem instead of a key
//
Console::WriteLine("\nIndexOf(temp): {0}", weekly->IndexOf(temp));
// The inherited Remove method also takes an OrderItem.
//
Console::WriteLine("\nRemove(temp)");
weekly->Remove(temp);
Display(weekly);
Console::WriteLine("\nRemoveAt(0)");
weekly->RemoveAt(0);
Display(weekly);
}
private:
static void Display(SimpleOrder^ order)
{
Console::WriteLine();
for each( OrderItem^ item in order )
{
Console::WriteLine(item);
}
}
};
void main()
{
Demo::Main();
}
/* This code example produces the following output:
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
101030411 10 Motor at 237.50 = 2,375.00
110072684 175 Gear at 5.17 = 904.75
Contains(101030411): True
weekly(101030411)->Description: Motor
Remove(101030411)
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
110072684 175 Gear at 5.17 = 904.75
Insert(2, New OrderItem(...))
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
111033401 10 Nut at .50 = 5.00
110072684 175 Gear at 5.17 = 904.75
coweekly(2)->Description: Nut
coweekly[2] = gcnew OrderItem(...)
IndexOf(temp): 2
Remove(temp)
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
110072684 175 Gear at 5.17 = 904.75
RemoveAt(0)
110072675 27 Sprocket at 5.30 = 143.10
110072684 175 Gear at 5.17 = 904.75
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
// This class represents a very simple keyed list of OrderItems,
// inheriting most of its behavior from the KeyedCollection and
// Collection classes. The immediate base class is the constructed
// type KeyedCollection<int, OrderItem>. When you inherit
// from KeyedCollection, the second generic type argument is the
// type that you want to store in the collection -- in this case
// OrderItem. The first type argument is the type that you want
// to use as a key. Its values must be calculated from OrderItem;
// in this case it is the int field PartNumber, so SimpleOrder
// inherits KeyedCollection<int, OrderItem>.
//
public class SimpleOrder : KeyedCollection<int, OrderItem>
{
// This is the only method that absolutely must be overridden,
// because without it the KeyedCollection cannot extract the
// keys from the items. The input parameter type is the
// second generic type argument, in this case OrderItem, and
// the return value type is the first generic type argument,
// in this case int.
//
protected override int GetKeyForItem(OrderItem item)
{
// In this example, the key is the part number.
return item.PartNumber;
}
}
public class Demo
{
public static void Main()
{
SimpleOrder weekly = new SimpleOrder();
// The Add method, inherited from Collection, takes OrderItem.
//
weekly.Add(new OrderItem(110072674, "Widget", 400, 45.17));
weekly.Add(new OrderItem(110072675, "Sprocket", 27, 5.3));
weekly.Add(new OrderItem(101030411, "Motor", 10, 237.5));
weekly.Add(new OrderItem(110072684, "Gear", 175, 5.17));
Display(weekly);
// The Contains method of KeyedCollection takes the key,
// type, in this case int.
//
Console.WriteLine("\nContains(101030411): {0}",
weekly.Contains(101030411));
// The default Item property of KeyedCollection takes a key.
//
Console.WriteLine("\nweekly[101030411].Description: {0}",
weekly[101030411].Description);
// The Remove method of KeyedCollection takes a key.
//
Console.WriteLine("\nRemove(101030411)");
weekly.Remove(101030411);
Display(weekly);
// The Insert method, inherited from Collection, takes an
// index and an OrderItem.
//
Console.WriteLine("\nInsert(2, New OrderItem(...))");
weekly.Insert(2, new OrderItem(111033401, "Nut", 10, .5));
Display(weekly);
// The default Item property is overloaded. One overload comes
// from KeyedCollection<int, OrderItem>; that overload
// is read-only, and takes Integer because it retrieves by key.
// The other overload comes from Collection<OrderItem>, the
// base class of KeyedCollection<int, OrderItem>; it
// retrieves by index, so it also takes an Integer. The compiler
// uses the most-derived overload, from KeyedCollection, so the
// only way to access SimpleOrder by index is to cast it to
// Collection<OrderItem>. Otherwise the index is interpreted
// as a key, and KeyNotFoundException is thrown.
//
Collection<OrderItem> coweekly = weekly;
Console.WriteLine("\ncoweekly[2].Description: {0}",
coweekly[2].Description);
Console.WriteLine("\ncoweekly[2] = new OrderItem(...)");
coweekly[2] = new OrderItem(127700026, "Crank", 27, 5.98);
OrderItem temp = coweekly[2];
// The IndexOf method inherited from Collection<OrderItem>
// takes an OrderItem instead of a key
//
Console.WriteLine("\nIndexOf(temp): {0}", weekly.IndexOf(temp));
// The inherited Remove method also takes an OrderItem.
//
Console.WriteLine("\nRemove(temp)");
weekly.Remove(temp);
Display(weekly);
Console.WriteLine("\nRemoveAt(0)");
weekly.RemoveAt(0);
Display(weekly);
}
private static void Display(SimpleOrder order)
{
Console.WriteLine();
foreach( OrderItem item in order )
{
Console.WriteLine(item);
}
}
}
// This class represents a simple line item in an order. All the
// values are immutable except quantity.
//
public class OrderItem
{
public readonly int PartNumber;
public readonly string Description;
public readonly double UnitPrice;
private int _quantity = 0;
public OrderItem(int partNumber, string description,
int quantity, double unitPrice)
{
this.PartNumber = partNumber;
this.Description = description;
this.Quantity = quantity;
this.UnitPrice = unitPrice;
}
public int Quantity
{
get { return _quantity; }
set
{
if (value<0)
throw new ArgumentException("Quantity cannot be negative.");
_quantity = value;
}
}
public override string ToString()
{
return String.Format(
"{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}",
PartNumber, _quantity, Description, UnitPrice,
UnitPrice * _quantity);
}
}
/* This code example produces the following output:
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
101030411 10 Motor at 237.50 = 2,375.00
110072684 175 Gear at 5.17 = 904.75
Contains(101030411): True
weekly[101030411].Description: Motor
Remove(101030411)
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
110072684 175 Gear at 5.17 = 904.75
Insert(2, New OrderItem(...))
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
111033401 10 Nut at .50 = 5.00
110072684 175 Gear at 5.17 = 904.75
coweekly[2].Description: Nut
coweekly[2] = new OrderItem(...)
IndexOf(temp): 2
Remove(temp)
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
110072684 175 Gear at 5.17 = 904.75
RemoveAt(0)
110072675 27 Sprocket at 5.30 = 143.10
110072684 175 Gear at 5.17 = 904.75
*/
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
' This class represents a very simple keyed list of OrderItems,
' inheriting most of its behavior from the KeyedCollection and
' Collection classes. The immediate base class is the constructed
' type KeyedCollection(Of Integer, OrderItem). When you inherit
' from KeyedCollection, the second generic type argument is the
' type that you want to store in the collection -- in this case
' OrderItem. The first generic argument is the type that you want
' to use as a key. Its values must be calculated from OrderItem;
' in this case it is the Integer field PartNumber, so SimpleOrder
' inherits KeyedCollection(Of Integer, OrderItem).
'
Public Class SimpleOrder
Inherits KeyedCollection(Of Integer, OrderItem)
' This is the only method that absolutely must be overridden,
' because without it the KeyedCollection cannot extract the
' keys from the items. The input parameter type is the
' second generic type argument, in this case OrderItem, and
' the return value type is the first generic type argument,
' in this case Integer.
'
Protected Overrides Function GetKeyForItem( _
ByVal item As OrderItem) As Integer
' In this example, the key is the part number.
Return item.PartNumber
End Function
End Class
Public Class Demo
Public Shared Sub Main()
Dim weekly As New SimpleOrder()
' The Add method, inherited from Collection, takes OrderItem.
'
weekly.Add(New OrderItem(110072674, "Widget", 400, 45.17))
weekly.Add(New OrderItem(110072675, "Sprocket", 27, 5.3))
weekly.Add(New OrderItem(101030411, "Motor", 10, 237.5))
weekly.Add(New OrderItem(110072684, "Gear", 175, 5.17))
Display(weekly)
' The Contains method of KeyedCollection takes TKey.
'
Console.WriteLine(vbLf & "Contains(101030411): {0}", _
weekly.Contains(101030411))
' The default Item property of KeyedCollection takes the key
' type, Integer.
'
Console.WriteLine(vbLf & "weekly(101030411).Description: {0}", _
weekly(101030411).Description)
' The Remove method of KeyedCollection takes a key.
'
Console.WriteLine(vbLf & "Remove(101030411)")
weekly.Remove(101030411)
Display(weekly)
' The Insert method, inherited from Collection, takes an
' index and an OrderItem.
'
Console.WriteLine(vbLf & "Insert(2, New OrderItem(...))")
weekly.Insert(2, New OrderItem(111033401, "Nut", 10, .5))
Display(weekly)
' The default Item property is overloaded. One overload comes
' from KeyedCollection(Of Integer, OrderItem); that overload
' is read-only, and takes Integer because it retrieves by key.
' The other overload comes from Collection(Of OrderItem), the
' base class of KeyedCollection(Of Integer, OrderItem); it
' retrieves by index, so it also takes an Integer. The compiler
' uses the most-derived overload, from KeyedCollection, so the
' only way to access SimpleOrder by index is to cast it to
' Collection(Of OrderItem). Otherwise the index is interpreted
' as a key, and KeyNotFoundException is thrown.
'
Dim coweekly As Collection(Of OrderItem) = weekly
Console.WriteLine(vbLf & "coweekly(2).Description: {0}", _
coweekly(2).Description)
Console.WriteLine(vbLf & "coweekly(2) = New OrderItem(...)")
coweekly(2) = New OrderItem(127700026, "Crank", 27, 5.98)
Dim temp As OrderItem = coweekly(2)
' The IndexOf method, inherited from Collection(Of OrderItem),
' takes an OrderItem instead of a key.
'
Console.WriteLine(vbLf & "IndexOf(temp): {0}", _
weekly.IndexOf(temp))
' The inherited Remove method also takes an OrderItem.
'
Console.WriteLine(vbLf & "Remove(temp)")
weekly.Remove(temp)
Display(weekly)
Console.WriteLine(vbLf & "RemoveAt(0)")
weekly.RemoveAt(0)
Display(weekly)
End Sub
Private Shared Sub Display(ByVal order As SimpleOrder)
Console.WriteLine()
For Each item As OrderItem In order
Console.WriteLine(item)
Next item
End Sub
End Class
' This class represents a simple line item in an order. All the
' values are immutable except quantity.
'
Public Class OrderItem
Public ReadOnly PartNumber As Integer
Public ReadOnly Description As String
Public ReadOnly UnitPrice As Double
Private _quantity As Integer = 0
Public Sub New(ByVal partNumber As Integer, _
ByVal description As String, _
ByVal quantity As Integer, _
ByVal unitPrice As Double)
Me.PartNumber = partNumber
Me.Description = description
Me.Quantity = quantity
Me.UnitPrice = unitPrice
End Sub
Public Property Quantity() As Integer
Get
Return _quantity
End Get
Set
If value < 0 Then
Throw New ArgumentException("Quantity cannot be negative.")
End If
_quantity = value
End Set
End Property
Public Overrides Function ToString() As String
Return String.Format( _
"{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}", _
PartNumber, _quantity, Description, UnitPrice, _
UnitPrice * _quantity)
End Function
End Class
' This code example produces the following output:
'
'110072674 400 Widget at 45.17 = 18,068.00
'110072675 27 Sprocket at 5.30 = 143.10
'101030411 10 Motor at 237.50 = 2,375.00
'110072684 175 Gear at 5.17 = 904.75
'
'Contains(101030411): True
'
'weekly(101030411).Description: Motor
'
'Remove(101030411)
'
'110072674 400 Widget at 45.17 = 18,068.00
'110072675 27 Sprocket at 5.30 = 143.10
'110072684 175 Gear at 5.17 = 904.75
'
'Insert(2, New OrderItem(...))
'
'110072674 400 Widget at 45.17 = 18,068.00
'110072675 27 Sprocket at 5.30 = 143.10
'111033401 10 Nut at .50 = 5.00
'110072684 175 Gear at 5.17 = 904.75
'
'coweekly(2).Description: Nut
'
'coweekly(2) = New OrderItem(...)
'
'IndexOf(temp): 2
'
'Remove(temp)
'
'110072674 400 Widget at 45.17 = 18,068.00
'110072675 27 Sprocket at 5.30 = 143.10
'110072684 175 Gear at 5.17 = 904.75
'
'RemoveAt(0)
'
'110072675 27 Sprocket at 5.30 = 143.10
'110072684 175 Gear at 5.17 = 904.75
příklad 2
Následující příklad kódu ukazuje, jak přepsat chráněné InsertItem, RemoveItem, ClearItemsa SetItem metody, poskytnout vlastní chování pro Add, Removea Clear metody a pro nastavení výchozí Item[] vlastnost (indexer v jazyce C#). Vlastní chování uvedené v tomto příkladu je událost oznámení s názvem Changed
, která je vyvolána na konci každé přepsané metody.
Příklad kódu vytvoří SimpleOrder
třídu, která je odvozena z KeyedCollection<TKey,TItem> a představuje jednoduchý formulář objednávky. Formulář objednávky obsahuje OrderItem
objekty představující položky seřazené. Příklad kódu také vytvoří SimpleOrderChangedEventArgs
třídu, která bude obsahovat informace o události, a výčet k identifikaci typu změny.
Příklad kódu ukazuje vlastní chování voláním vlastností a metod odvozené třídy v Main
metoda Demo
třídy.
Tento příklad kódu používá objekty s neměnnými klíči. Příklad kódu, který používá proměnlivé klíče, viz ChangeItemKey.
using namespace System;
using namespace System::Collections::Generic;
using namespace System::Collections::ObjectModel;
public enum class ChangeTypes
{
Added,
Removed,
Replaced,
Cleared
};
ref class SimpleOrderChangedEventArgs;
// This class represents a simple line item in an order. All the
// values are immutable except quantity.
//
public ref class OrderItem
{
private:
int _quantity;
public:
initonly int PartNumber;
initonly String^ Description;
initonly double UnitPrice;
OrderItem(int partNumber, String^ description, int quantity,
double unitPrice)
{
this->PartNumber = partNumber;
this->Description = description;
this->Quantity = quantity;
this->UnitPrice = unitPrice;
};
property int Quantity
{
int get() { return _quantity; };
void set(int value)
{
if (value < 0)
throw gcnew ArgumentException("Quantity cannot be negative.");
_quantity = value;
};
};
virtual String^ ToString() override
{
return String::Format(
"{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}",
PartNumber, _quantity, Description, UnitPrice,
UnitPrice * _quantity);
};
};
// Event argument for the Changed event.
//
public ref class SimpleOrderChangedEventArgs : EventArgs
{
public:
OrderItem^ ChangedItem;
initonly ChangeTypes ChangeType;
OrderItem^ ReplacedWith;
SimpleOrderChangedEventArgs(ChangeTypes change,
OrderItem^ item, OrderItem^ replacement)
{
this->ChangeType = change;
this->ChangedItem = item;
this->ReplacedWith = replacement;
}
};
// This class derives from KeyedCollection and shows how to override
// the protected ClearItems, InsertItem, RemoveItem, and SetItem
// methods in order to change the behavior of the default Item
// property and the Add, Clear, Insert, and Remove methods. The
// class implements a Changed event, which is raised by all the
// protected methods.
//
// SimpleOrder is a collection of OrderItem objects, and its key
// is the PartNumber field of OrderItem-> PartNumber is an Integer,
// so SimpleOrder inherits KeyedCollection<int, OrderItem>.
// (Note that the key of OrderItem cannot be changed; if it could
// be changed, SimpleOrder would have to override ChangeItemKey.)
//
public ref class SimpleOrder : KeyedCollection<int, OrderItem^>
{
public:
event EventHandler<SimpleOrderChangedEventArgs^>^ Changed;
// This parameterless constructor calls the base class constructor
// that specifies a dictionary threshold of 0, so that the internal
// dictionary is created as soon as an item is added to the
// collection.
//
SimpleOrder() : KeyedCollection<int, OrderItem^>(nullptr, 0) {};
// This is the only method that absolutely must be overridden,
// because without it the KeyedCollection cannot extract the
// keys from the items.
//
protected:
virtual int GetKeyForItem(OrderItem^ item) override
{
// In this example, the key is the part number.
return item->PartNumber;
}
virtual void InsertItem(int index, OrderItem^ newItem) override
{
__super::InsertItem(index, newItem);
Changed(this, gcnew SimpleOrderChangedEventArgs(
ChangeTypes::Added, newItem, nullptr));
}
virtual void SetItem(int index, OrderItem^ newItem) override
{
OrderItem^ replaced = this->Items[index];
__super::SetItem(index, newItem);
Changed(this, gcnew SimpleOrderChangedEventArgs(
ChangeTypes::Replaced, replaced, newItem));
}
virtual void RemoveItem(int index) override
{
OrderItem^ removedItem = Items[index];
__super::RemoveItem(index);
Changed(this, gcnew SimpleOrderChangedEventArgs(
ChangeTypes::Removed, removedItem, nullptr));
}
virtual void ClearItems() override
{
__super::ClearItems();
Changed(this, gcnew SimpleOrderChangedEventArgs(
ChangeTypes::Cleared, nullptr, nullptr));
}
// This method uses the internal reference to the dictionary
// to test fo
public:
void AddOrMerge(OrderItem^ newItem)
{
int key = this->GetKeyForItem(newItem);
OrderItem^ existingItem = nullptr;
// The dictionary is not created until the first item is
// added, so it is necessary to test for null. Using
// AndAlso ensures that TryGetValue is not called if the
// dictionary does not exist.
//
if (this->Dictionary != nullptr &&
this->Dictionary->TryGetValue(key, existingItem))
{
existingItem->Quantity += newItem->Quantity;
}
else
{
this->Add(newItem);
}
}
};
public ref class Demo
{
public:
static void Main()
{
SimpleOrder^ weekly = gcnew SimpleOrder();
weekly->Changed += gcnew
EventHandler<SimpleOrderChangedEventArgs^>(ChangedHandler);
// The Add method, inherited from Collection, takes OrderItem->
//
weekly->Add(gcnew OrderItem(110072674, "Widget", 400, 45.17));
weekly->Add(gcnew OrderItem(110072675, "Sprocket", 27, 5.3));
weekly->Add(gcnew OrderItem(101030411, "Motor", 10, 237.5));
weekly->Add(gcnew OrderItem(110072684, "Gear", 175, 5.17));
Display(weekly);
// The Contains method of KeyedCollection takes TKey.
//
Console::WriteLine("\nContains(101030411): {0}",
weekly->Contains(101030411));
// The default Item property of KeyedCollection takes the key
// type, Integer. The property is read-only.
//
Console::WriteLine("\nweekly[101030411]->Description: {0}",
weekly[101030411]->Description);
// The Remove method of KeyedCollection takes a key.
//
Console::WriteLine("\nRemove(101030411)");
weekly->Remove(101030411);
// The Insert method, inherited from Collection, takes an
// index and an OrderItem.
//
Console::WriteLine("\nInsert(2, gcnew OrderItem(...))");
weekly->Insert(2, gcnew OrderItem(111033401, "Nut", 10, .5));
// The default Item property is overloaded. One overload comes
// from KeyedCollection<int, OrderItem>; that overload
// is read-only, and takes Integer because it retrieves by key.
// The other overload comes from Collection<OrderItem>, the
// base class of KeyedCollection<int, OrderItem>; it
// retrieves by index, so it also takes an Integer. The compiler
// uses the most-derived overload, from KeyedCollection, so the
// only way to access SimpleOrder by index is to cast it to
// Collection<OrderItem>. Otherwise the index is interpreted
// as a key, and KeyNotFoundException is thrown.
//
Collection<OrderItem^>^ coweekly = weekly;
Console::WriteLine("\ncoweekly[2].Description: {0}",
coweekly[2]->Description);
Console::WriteLine("\ncoweekly[2] = gcnew OrderItem(...)");
coweekly[2] = gcnew OrderItem(127700026, "Crank", 27, 5.98);
OrderItem^ temp = coweekly[2];
// The IndexOf method, inherited from Collection<OrderItem>,
// takes an OrderItem instead of a key.
//
Console::WriteLine("\nIndexOf(temp): {0}", weekly->IndexOf(temp));
// The inherited Remove method also takes an OrderItem->
//
Console::WriteLine("\nRemove(temp)");
weekly->Remove(temp);
Console::WriteLine("\nRemoveAt(0)");
weekly->RemoveAt(0);
weekly->AddOrMerge(gcnew OrderItem(110072684, "Gear", 1000, 5.17));
Display(weekly);
Console::WriteLine();
weekly->Clear();
}
private:
static void Display(SimpleOrder^ order)
{
Console::WriteLine();
for each( OrderItem^ item in order )
{
Console::WriteLine(item);
}
}
static void ChangedHandler(Object^ source,
SimpleOrderChangedEventArgs^ e)
{
OrderItem^ item = e->ChangedItem;
if (e->ChangeType == ChangeTypes::Replaced)
{
OrderItem^ replacement = e->ReplacedWith;
Console::WriteLine("{0} (quantity {1}) was replaced " +
"by {2}, (quantity {3}).", item->Description,
item->Quantity, replacement->Description,
replacement->Quantity);
}
else if(e->ChangeType == ChangeTypes::Cleared)
{
Console::WriteLine("The order list was cleared.");
}
else
{
Console::WriteLine("{0} (quantity {1}) was {2}.",
item->Description, item->Quantity, e->ChangeType);
}
}
};
void main()
{
Demo::Main();
}
/* This code example produces the following output:
Widget (quantity 400) was Added.
Sprocket (quantity 27) was Added.
Motor (quantity 10) was Added.
Gear (quantity 175) was Added.
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
101030411 10 Motor at 237.50 = 2,375.00
110072684 175 Gear at 5.17 = 904.75
Contains(101030411): True
weekly[101030411]->Description: Motor
Remove(101030411)
Motor (quantity 10) was Removed.
Insert(2, gcnew OrderItem(...))
Nut (quantity 10) was Added.
coweekly[2].Description: Nut
coweekly[2] = gcnew OrderItem(...)
Nut (quantity 10) was replaced by Crank, (quantity 27).
IndexOf(temp): 2
Remove(temp)
Crank (quantity 27) was Removed.
RemoveAt(0)
Widget (quantity 400) was Removed.
110072675 27 Sprocket at 5.30 = 143.10
110072684 1175 Gear at 5.17 = 6,074.75
The order list was cleared.
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
// This class derives from KeyedCollection and shows how to override
// the protected ClearItems, InsertItem, RemoveItem, and SetItem
// methods in order to change the behavior of the default Item
// property and the Add, Clear, Insert, and Remove methods. The
// class implements a Changed event, which is raised by all the
// protected methods.
//
// SimpleOrder is a collection of OrderItem objects, and its key
// is the PartNumber field of OrderItem. PartNumber is an Integer,
// so SimpleOrder inherits KeyedCollection<int, OrderItem>.
// (Note that the key of OrderItem cannot be changed; if it could
// be changed, SimpleOrder would have to override ChangeItemKey.)
//
public class SimpleOrder : KeyedCollection<int, OrderItem>
{
public event EventHandler<SimpleOrderChangedEventArgs> Changed;
// This parameterless constructor calls the base class constructor
// that specifies a dictionary threshold of 0, so that the internal
// dictionary is created as soon as an item is added to the
// collection.
//
public SimpleOrder() : base(null, 0) {}
// This is the only method that absolutely must be overridden,
// because without it the KeyedCollection cannot extract the
// keys from the items.
//
protected override int GetKeyForItem(OrderItem item)
{
// In this example, the key is the part number.
return item.PartNumber;
}
protected override void InsertItem(int index, OrderItem newItem)
{
base.InsertItem(index, newItem);
EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
if (temp != null)
{
temp(this, new SimpleOrderChangedEventArgs(
ChangeType.Added, newItem, null));
}
}
protected override void SetItem(int index, OrderItem newItem)
{
OrderItem replaced = Items[index];
base.SetItem(index, newItem);
EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
if (temp != null)
{
temp(this, new SimpleOrderChangedEventArgs(
ChangeType.Replaced, replaced, newItem));
}
}
protected override void RemoveItem(int index)
{
OrderItem removedItem = Items[index];
base.RemoveItem(index);
EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
if (temp != null)
{
temp(this, new SimpleOrderChangedEventArgs(
ChangeType.Removed, removedItem, null));
}
}
protected override void ClearItems()
{
base.ClearItems();
EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
if (temp != null)
{
temp(this, new SimpleOrderChangedEventArgs(
ChangeType.Cleared, null, null));
}
}
}
// Event argument for the Changed event.
//
public class SimpleOrderChangedEventArgs : EventArgs
{
private OrderItem _changedItem;
private ChangeType _changeType;
private OrderItem _replacedWith;
public OrderItem ChangedItem { get { return _changedItem; }}
public ChangeType ChangeType { get { return _changeType; }}
public OrderItem ReplacedWith { get { return _replacedWith; }}
public SimpleOrderChangedEventArgs(ChangeType change,
OrderItem item, OrderItem replacement)
{
_changeType = change;
_changedItem = item;
_replacedWith = replacement;
}
}
public enum ChangeType
{
Added,
Removed,
Replaced,
Cleared
};
public class Demo
{
public static void Main()
{
SimpleOrder weekly = new SimpleOrder();
weekly.Changed += new
EventHandler<SimpleOrderChangedEventArgs>(ChangedHandler);
// The Add method, inherited from Collection, takes OrderItem.
//
weekly.Add(new OrderItem(110072674, "Widget", 400, 45.17));
weekly.Add(new OrderItem(110072675, "Sprocket", 27, 5.3));
weekly.Add(new OrderItem(101030411, "Motor", 10, 237.5));
weekly.Add(new OrderItem(110072684, "Gear", 175, 5.17));
Display(weekly);
// The Contains method of KeyedCollection takes TKey.
//
Console.WriteLine("\nContains(101030411): {0}",
weekly.Contains(101030411));
// The default Item property of KeyedCollection takes the key
// type, Integer. The property is read-only.
//
Console.WriteLine("\nweekly[101030411].Description: {0}",
weekly[101030411].Description);
// The Remove method of KeyedCollection takes a key.
//
Console.WriteLine("\nRemove(101030411)");
weekly.Remove(101030411);
// The Insert method, inherited from Collection, takes an
// index and an OrderItem.
//
Console.WriteLine("\nInsert(2, new OrderItem(...))");
weekly.Insert(2, new OrderItem(111033401, "Nut", 10, .5));
// The default Item property is overloaded. One overload comes
// from KeyedCollection<int, OrderItem>; that overload
// is read-only, and takes Integer because it retrieves by key.
// The other overload comes from Collection<OrderItem>, the
// base class of KeyedCollection<int, OrderItem>; it
// retrieves by index, so it also takes an Integer. The compiler
// uses the most-derived overload, from KeyedCollection, so the
// only way to access SimpleOrder by index is to cast it to
// Collection<OrderItem>. Otherwise the index is interpreted
// as a key, and KeyNotFoundException is thrown.
//
Collection<OrderItem> coweekly = weekly;
Console.WriteLine("\ncoweekly[2].Description: {0}",
coweekly[2].Description);
Console.WriteLine("\ncoweekly[2] = new OrderItem(...)");
coweekly[2] = new OrderItem(127700026, "Crank", 27, 5.98);
OrderItem temp = coweekly[2];
// The IndexOf method, inherited from Collection<OrderItem>,
// takes an OrderItem instead of a key.
//
Console.WriteLine("\nIndexOf(temp): {0}", weekly.IndexOf(temp));
// The inherited Remove method also takes an OrderItem.
//
Console.WriteLine("\nRemove(temp)");
weekly.Remove(temp);
Console.WriteLine("\nRemoveAt(0)");
weekly.RemoveAt(0);
// Increase the quantity for a line item.
Console.WriteLine("\ncoweekly(1) = New OrderItem(...)");
coweekly[1] = new OrderItem(coweekly[1].PartNumber,
coweekly[1].Description, coweekly[1].Quantity + 1000,
coweekly[1].UnitPrice);
Display(weekly);
Console.WriteLine();
weekly.Clear();
}
private static void Display(SimpleOrder order)
{
Console.WriteLine();
foreach( OrderItem item in order )
{
Console.WriteLine(item);
}
}
private static void ChangedHandler(object source,
SimpleOrderChangedEventArgs e)
{
OrderItem item = e.ChangedItem;
if (e.ChangeType==ChangeType.Replaced)
{
OrderItem replacement = e.ReplacedWith;
Console.WriteLine("{0} (quantity {1}) was replaced " +
"by {2}, (quantity {3}).", item.Description,
item.Quantity, replacement.Description,
replacement.Quantity);
}
else if(e.ChangeType == ChangeType.Cleared)
{
Console.WriteLine("The order list was cleared.");
}
else
{
Console.WriteLine("{0} (quantity {1}) was {2}.",
item.Description, item.Quantity, e.ChangeType);
}
}
}
// This class represents a simple line item in an order. All the
// values are immutable except quantity.
//
public class OrderItem
{
private int _partNumber;
private string _description;
private double _unitPrice;
private int _quantity;
public int PartNumber { get { return _partNumber; }}
public string Description { get { return _description; }}
public double UnitPrice { get { return _unitPrice; }}
public int Quantity { get { return _quantity; }}
public OrderItem(int partNumber, string description, int quantity,
double unitPrice)
{
_partNumber = partNumber;
_description = description;
_quantity = quantity;
_unitPrice = unitPrice;
}
public override string ToString()
{
return String.Format(
"{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}",
PartNumber, _quantity, Description, UnitPrice,
UnitPrice * _quantity);
}
}
/* This code example produces the following output:
Widget (quantity 400) was Added.
Sprocket (quantity 27) was Added.
Motor (quantity 10) was Added.
Gear (quantity 175) was Added.
110072674 400 Widget at 45.17 = 18,068.00
110072675 27 Sprocket at 5.30 = 143.10
101030411 10 Motor at 237.50 = 2,375.00
110072684 175 Gear at 5.17 = 904.75
Contains(101030411): True
weekly[101030411].Description: Motor
Remove(101030411)
Motor (quantity 10) was Removed.
Insert(2, new OrderItem(...))
Nut (quantity 10) was Added.
coweekly[2].Description: Nut
coweekly[2] = new OrderItem(...)
Nut (quantity 10) was replaced by Crank, (quantity 27).
IndexOf(temp): 2
Remove(temp)
Crank (quantity 27) was Removed.
RemoveAt(0)
Widget (quantity 400) was Removed.
coweekly(1) = New OrderItem(...)
Gear (quantity 175) was replaced by Gear, (quantity 1175).
110072675 27 Sprocket at 5.30 = 143.10
110072684 1175 Gear at 5.17 = 6,074.75
The order list was cleared.
*/
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
' This class derives from KeyedCollection and shows how to override
' the protected ClearItems, InsertItem, RemoveItem, and SetItem
' methods in order to change the behavior of the default Item
' property and the Add, Clear, Insert, and Remove methods. The
' class implements a Changed event, which is raised by all the
' protected methods.
'
' SimpleOrder is a collection of OrderItem objects, and its key
' is the PartNumber field of OrderItem. PartNumber is an Integer,
' so SimpleOrder inherits KeyedCollection(Of Integer, OrderItem).
' (Note that the key of OrderItem cannot be changed; if it could
' be changed, SimpleOrder would have to override ChangeItemKey.)
'
Public Class SimpleOrder
Inherits KeyedCollection(Of Integer, OrderItem)
Public Event Changed As EventHandler(Of SimpleOrderChangedEventArgs)
' This parameterless constructor calls the base class constructor
' that specifies a dictionary threshold of 0, so that the internal
' dictionary is created as soon as an item is added to the
' collection.
'
Public Sub New()
MyBase.New(Nothing, 0)
End Sub
' This is the only method that absolutely must be overridden,
' because without it the KeyedCollection cannot extract the
' keys from the items.
'
Protected Overrides Function GetKeyForItem( _
ByVal item As OrderItem) As Integer
' In this example, the key is the part number.
Return item.PartNumber
End Function
Protected Overrides Sub InsertItem( _
ByVal index As Integer, ByVal newItem As OrderItem)
MyBase.InsertItem(index, newItem)
RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
ChangeType.Added, newItem, Nothing))
End Sub
Protected Overrides Sub SetItem(ByVal index As Integer, _
ByVal newItem As OrderItem)
Dim replaced As OrderItem = Items(index)
MyBase.SetItem(index, newItem)
RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
ChangeType.Replaced, replaced, newItem))
End Sub
Protected Overrides Sub RemoveItem(ByVal index As Integer)
Dim removedItem As OrderItem = Items(index)
MyBase.RemoveItem(index)
RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
ChangeType.Removed, removedItem, Nothing))
End Sub
Protected Overrides Sub ClearItems()
MyBase.ClearItems()
RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
ChangeType.Cleared, Nothing, Nothing))
End Sub
End Class
' Event argument for the Changed event.
'
Public Class SimpleOrderChangedEventArgs
Inherits EventArgs
Private _changedItem As OrderItem
Private _changeType As ChangeType
Private _replacedWith As OrderItem
Public ReadOnly Property ChangedItem As OrderItem
Get
Return _changedItem
End Get
End Property
Public ReadOnly Property ChangeType As ChangeType
Get
Return _changeType
End Get
End Property
Public ReadOnly Property ReplacedWith As OrderItem
Get
Return _replacedWith
End Get
End Property
Public Sub New(ByVal change As ChangeType, ByVal item As OrderItem, _
ByVal replacement As OrderItem)
_changeType = change
_changedItem = item
_replacedWith = replacement
End Sub
End Class
Public Enum ChangeType
Added
Removed
Replaced
Cleared
End Enum
Public Class Demo
Public Shared Sub Main()
Dim weekly As New SimpleOrder()
AddHandler weekly.Changed, AddressOf ChangedHandler
' The Add method, inherited from Collection, takes OrderItem.
'
weekly.Add(New OrderItem(110072674, "Widget", 400, 45.17))
weekly.Add(New OrderItem(110072675, "Sprocket", 27, 5.3))
weekly.Add(New OrderItem(101030411, "Motor", 10, 237.5))
weekly.Add(New OrderItem(110072684, "Gear", 175, 5.17))
Display(weekly)
' The Contains method of KeyedCollection takes TKey.
'
Console.WriteLine(vbLf & "Contains(101030411): {0}", _
weekly.Contains(101030411))
' The default Item property of KeyedCollection takes the key
' type, Integer. The property is read-only.
'
Console.WriteLine(vbLf & "weekly(101030411).Description: {0}", _
weekly(101030411).Description)
' The Remove method of KeyedCollection takes a key.
'
Console.WriteLine(vbLf & "Remove(101030411)")
weekly.Remove(101030411)
' The Insert method, inherited from Collection, takes an
' index and an OrderItem.
'
Console.WriteLine(vbLf & "Insert(2, New OrderItem(...))")
weekly.Insert(2, New OrderItem(111033401, "Nut", 10, .5))
' The default Item property is overloaded. One overload comes
' from KeyedCollection(Of Integer, OrderItem); that overload
' is read-only, and takes Integer because it retrieves by key.
' The other overload comes from Collection(Of OrderItem), the
' base class of KeyedCollection(Of Integer, OrderItem); it
' retrieves by index, so it also takes an Integer. The compiler
' uses the most-derived overload, from KeyedCollection, so the
' only way to access SimpleOrder by index is to cast it to
' Collection(Of OrderItem). Otherwise the index is interpreted
' as a key, and KeyNotFoundException is thrown.
'
Dim coweekly As Collection(Of OrderItem) = weekly
Console.WriteLine(vbLf & "coweekly(2).Description: {0}", _
coweekly(2).Description)
Console.WriteLine(vbLf & "coweekly(2) = New OrderItem(...)")
coweekly(2) = New OrderItem(127700026, "Crank", 27, 5.98)
Dim temp As OrderItem = coweekly(2)
' The IndexOf method, inherited from Collection(Of OrderItem),
' takes an OrderItem instead of a key.
'
Console.WriteLine(vbLf & "IndexOf(temp): {0}", _
weekly.IndexOf(temp))
' The inherited Remove method also takes an OrderItem.
'
Console.WriteLine(vbLf & "Remove(temp)")
weekly.Remove(temp)
Console.WriteLine(vbLf & "RemoveAt(0)")
weekly.RemoveAt(0)
' Increase the quantity for a line item.
Console.WriteLine(vbLf & "coweekly(1) = New OrderItem(...)")
coweekly(1) = New OrderItem(coweekly(1).PartNumber, _
coweekly(1).Description, coweekly(1).Quantity + 1000, _
coweekly(1).UnitPrice)
Display(weekly)
Console.WriteLine()
weekly.Clear()
End Sub
Private Shared Sub Display(ByVal order As SimpleOrder)
Console.WriteLine()
For Each item As OrderItem In order
Console.WriteLine(item)
Next item
End Sub
Private Shared Sub ChangedHandler(ByVal source As Object, _
ByVal e As SimpleOrderChangedEventArgs)
Dim item As OrderItem = e.ChangedItem
If e.ChangeType = ChangeType.Replaced Then
Dim replacement As OrderItem = e.ReplacedWith
Console.WriteLine("{0} (quantity {1}) was replaced " & _
"by {2}, (quantity {3}).", item.Description, _
item.Quantity, replacement.Description, replacement.Quantity)
ElseIf e.ChangeType = ChangeType.Cleared Then
Console.WriteLine("The order list was cleared.")
Else
Console.WriteLine("{0} (quantity {1}) was {2}.", _
item.Description, item.Quantity, e.ChangeType)
End If
End Sub
End Class
' This class represents a simple line item in an order. All the
' values are immutable except quantity.
'
Public Class OrderItem
Private _partNumber As Integer
Private _description As String
Private _unitPrice As Double
Private _quantity As Integer
Public ReadOnly Property PartNumber As Integer
Get
Return _partNumber
End Get
End Property
Public ReadOnly Property Description As String
Get
Return _description
End Get
End Property
Public ReadOnly Property UnitPrice As Double
Get
Return _unitPrice
End Get
End Property
Public ReadOnly Property Quantity() As Integer
Get
Return _quantity
End Get
End Property
Public Sub New(ByVal partNumber As Integer, _
ByVal description As String, _
ByVal quantity As Integer, _
ByVal unitPrice As Double)
_partNumber = partNumber
_description = description
_quantity = quantity
_unitPrice = unitPrice
End Sub
Public Overrides Function ToString() As String
Return String.Format( _
"{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}", _
PartNumber, _quantity, Description, UnitPrice, _
UnitPrice * _quantity)
End Function
End Class
' This code example produces the following output:
'
'Widget (quantity 400) was Added.
'Sprocket (quantity 27) was Added.
'Motor (quantity 10) was Added.
'Gear (quantity 175) was Added.
'
'110072674 400 Widget at 45.17 = 18,068.00
'110072675 27 Sprocket at 5.30 = 143.10
'101030411 10 Motor at 237.50 = 2,375.00
'110072684 175 Gear at 5.17 = 904.75
'
'Contains(101030411): True
'
'weekly(101030411).Description: Motor
'
'Remove(101030411)
'Motor (quantity 10) was Removed.
'
'Insert(2, New OrderItem(...))
'Nut (quantity 10) was Added.
'
'coweekly(2).Description: Nut
'
'coweekly(2) = New OrderItem(...)
'Nut (quantity 10) was replaced by Crank, (quantity 27).
'
'IndexOf(temp): 2
'
'Remove(temp)
'Crank (quantity 27) was Removed.
'
'RemoveAt(0)
'Widget (quantity 400) was Removed.
'
'coweekly(1) = New OrderItem(...)
'Gear (quantity 175) was replaced by Gear, (quantity 1175).
'
'110072675 27 Sprocket at 5.30 = 143.10
'110072684 1175 Gear at 5.17 = 6,074.75
'
'The order list was cleared.
Poznámky
Třída KeyedCollection<TKey,TItem> poskytuje indexované načítání O(1) i načítání s klíči, které se blíží O(1). Jedná se o abstraktní typ nebo přesněji nekonečnou sadu abstraktních typů, protože každý z jejích vytvořených obecných typů je abstraktní základní třída. Chcete-li použít KeyedCollection<TKey,TItem>, odvodit typ kolekce z příslušného vytvořeného typu.
Třída KeyedCollection<TKey,TItem> je hybridní mezi kolekcí založenou na obecném rozhraní IList<T> a kolekcí založenou na IDictionary<TKey,TValue> obecného rozhraní. Podobně jako kolekce založené na obecném rozhraní IList<T> je KeyedCollection<TKey,TItem> indexovaný seznam položek. Podobně jako kolekce založené na obecném rozhraní IDictionary<TKey,TValue> má KeyedCollection<TKey,TItem> klíč přidružený ke každému prvku.
Na rozdíl od slovníků není prvek KeyedCollection<TKey,TItem> pár klíč/hodnota; místo toho je celý prvek hodnotou a klíč je vložen do hodnoty. Například prvek kolekce odvozené z KeyedCollection\<String,String>
(KeyedCollection(Of String, String)
v jazyce Visual Basic) může být "John Doe Jr", kde hodnota je "John Doe Jr" a klíč je "Doe"; nebo kolekci záznamů zaměstnanců obsahujících celočíselné klíče lze odvodit z KeyedCollection\<int,Employee>
. Abstraktní GetKeyForItem metoda extrahuje klíč z elementu.
Ve výchozím nastavení KeyedCollection<TKey,TItem> obsahuje vyhledávací slovník, který můžete získat pomocí vlastnosti Dictionary. Při přidání položky do KeyedCollection<TKey,TItem>se klíč položky extrahuje jednou a uloží se do vyhledávacího slovníku pro rychlejší hledání. Toto chování je přepsáno zadáním prahové hodnoty pro vytvoření slovníku při vytváření KeyedCollection<TKey,TItem>. Vyhledávací slovník se vytvoří při prvním překročení prahové hodnoty počtu prvků. Pokud jako prahovou hodnotu zadáte -1, vyhledávací slovník se nikdy nevytvořil.
Poznámka
Při použití interního vyhledávacího slovníku obsahuje odkazy na všechny položky v kolekci, pokud TItem
je typ odkazu, nebo kopie všech položek v kolekci, pokud TItem
je typ hodnoty. Proto použití vyhledávacího slovníku nemusí být vhodné, pokud TItem
je typ hodnoty.
K položce můžete přistupovat pomocí indexu nebo klíče pomocí vlastnosti Item[]. Položky můžete přidávat bez klíče, ale k těmto položkám se následně dostanete pouze pomocí indexu.
Konstruktory
KeyedCollection<TKey,TItem>() |
Inicializuje novou instanci KeyedCollection<TKey,TItem> třídy, která používá výchozí porovnávač rovnosti. |
KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>) |
Inicializuje novou instanci KeyedCollection<TKey,TItem> třídy, která používá zadaný porovnávač rovnosti. |
KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>, Int32) |
Inicializuje novou instanci KeyedCollection<TKey,TItem> třídy, která používá zadaný porovnávač rovnosti a vytvoří vyhledávací slovník při překročení zadané prahové hodnoty. |
Vlastnosti
Comparer |
Získá obecný porovnávač rovnosti, který se používá k určení rovnosti klíčů v kolekci. |
Count |
Získá počet prvků skutečně obsažené v Collection<T>. (Zděděno od Collection<T>) |
Dictionary |
Získá vyhledávací slovník KeyedCollection<TKey,TItem>. |
Item[Int32] |
Získá nebo nastaví prvek v zadaném indexu. (Zděděno od Collection<T>) |
Item[TKey] |
Získá prvek se zadaným klíčem. |
Items |
Získá IList<T> obálku kolem Collection<T>. (Zděděno od Collection<T>) |
Metody
Add(T) |
Přidá objekt na konec Collection<T>. (Zděděno od Collection<T>) |
ChangeItemKey(TItem, TKey) |
Změní klíč přidružený k zadanému prvku ve vyhledávacím slovníku. |
Clear() |
Odebere všechny prvky z Collection<T>. (Zděděno od Collection<T>) |
ClearItems() |
Odebere všechny prvky z KeyedCollection<TKey,TItem>. |
Contains(TKey) |
Určuje, zda kolekce obsahuje prvek se zadaným klíčem. |
CopyTo(T[], Int32) |
Zkopíruje celý Collection<T> do kompatibilního jednorozměrného Arraypočínaje zadaným indexem cílového pole. (Zděděno od Collection<T>) |
Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
GetEnumerator() |
Vrátí enumerátor, který iteruje přes Collection<T>. (Zděděno od Collection<T>) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetKeyForItem(TItem) |
Při implementaci v odvozené třídě extrahuje klíč ze zadaného prvku. |
GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
IndexOf(T) |
Vyhledá zadaný objekt a vrátí index založený na nule prvního výskytu v celém Collection<T>. (Zděděno od Collection<T>) |
Insert(Int32, T) |
Vloží prvek do Collection<T> v zadaném indexu. (Zděděno od Collection<T>) |
InsertItem(Int32, T) |
Vloží prvek do Collection<T> v zadaném indexu. (Zděděno od Collection<T>) |
InsertItem(Int32, TItem) |
Vloží prvek do KeyedCollection<TKey,TItem> v zadaném indexu. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
Remove(TKey) |
Odebere prvek se zadaným klíčem z KeyedCollection<TKey,TItem>. |
RemoveAt(Int32) |
Odebere prvek v zadaném indexu Collection<T>. (Zděděno od Collection<T>) |
RemoveItem(Int32) |
Odebere prvek v zadaném indexu KeyedCollection<TKey,TItem>. |
SetItem(Int32, T) |
Nahradí prvek v zadaném indexu. (Zděděno od Collection<T>) |
SetItem(Int32, TItem) |
Nahradí položku v zadaném indexu zadanou položkou. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
TryGetValue(TKey, TItem) |
Pokusí se získat položku z kolekce pomocí zadaného klíče. |
Explicitní implementace rozhraní
ICollection.CopyTo(Array, Int32) |
Zkopíruje prvky ICollection do Arraypočínaje konkrétním indexem Array. (Zděděno od Collection<T>) |
ICollection.IsSynchronized |
Získá hodnotu označující, zda je přístup k ICollection synchronizován (bezpečné vlákno). (Zděděno od Collection<T>) |
ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k ICollection. (Zděděno od Collection<T>) |
ICollection<T>.IsReadOnly |
Získá hodnotu určující, zda ICollection<T> je jen pro čtení. (Zděděno od Collection<T>) |
IEnumerable.GetEnumerator() |
Vrátí enumerátor, který iteruje kolekcí. (Zděděno od Collection<T>) |
IList.Add(Object) |
Přidá položku do IList. (Zděděno od Collection<T>) |
IList.Contains(Object) |
Určuje, zda IList obsahuje konkrétní hodnotu. (Zděděno od Collection<T>) |
IList.IndexOf(Object) |
Určuje index konkrétní položky v IList. (Zděděno od Collection<T>) |
IList.Insert(Int32, Object) |
Vloží položku do IList v zadaném indexu. (Zděděno od Collection<T>) |
IList.IsFixedSize |
Získá hodnotu určující, zda IList má pevnou velikost. (Zděděno od Collection<T>) |
IList.IsReadOnly |
Získá hodnotu určující, zda IList je jen pro čtení. (Zděděno od Collection<T>) |
IList.Item[Int32] |
Získá nebo nastaví prvek v zadaném indexu. (Zděděno od Collection<T>) |
IList.Remove(Object) |
Odebere první výskyt konkrétního objektu z IList. (Zděděno od Collection<T>) |
Metody rozšíření
ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří FrozenDictionary<TKey,TValue> z IEnumerable<T> podle zadané funkce selektoru kláves. |
ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Vytvoří FrozenDictionary<TKey,TValue> z IEnumerable<T> podle zadaných funkcí selektoru klíčů a selektoru prvků. |
ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>) |
Vytvoří FrozenSet<T> se zadanými hodnotami. |
AsReadOnly<T>(IList<T>) |
Vrátí obálku jen pro čtení ReadOnlyCollection<T> pro zadaný seznam. |
ToImmutableArray<TSource>(IEnumerable<TSource>) |
Vytvoří neměnné pole ze zadané kolekce. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Vytvoří neměnný slovník z existující kolekce prvků a použije transformační funkci na zdrojové klíče. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří neměnný slovník na základě určité transformace sekvence. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Vytvoří výčet a transformaci sekvence a vytvoří neměnný slovník jeho obsahu. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>) |
Vytvoří výčet a transformaci sekvence a vytvoří neměnný slovník jeho obsahu pomocí zadaného porovnávače klíčů. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>) |
Vytvoří výčet a transformaci sekvence a vytvoří neměnný slovník jeho obsahu pomocí zadaných porovnávacích klíčů a hodnot. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>) |
Vytvoří výčet sekvence a vytvoří neměnnou sadu hodnot hash jejího obsahu. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří výčet sekvence, vytvoří neměnnou sadu hodnot hash jejího obsahu a použije zadaný porovnávač rovnosti pro typ sady. |
ToImmutableList<TSource>(IEnumerable<TSource>) |
Vytvoří výčet sekvence a vytvoří neměnný seznam jeho obsahu. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Vytvoří výčet a transformaci sekvence a vytvoří neměnný seřazený slovník jeho obsahu. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>) |
Vytvoří výčet a transformaci sekvence a vytvoří neměnný seřazený slovník jeho obsahu pomocí zadaného porovnávače klíčů. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>) |
Vytvoří výčet a transformaci sekvence a vytvoří neměnný seřazený slovník jeho obsahu pomocí zadaných porovnávacích klíčů a hodnot. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>) |
Vytvoří výčet sekvence a vytvoří neměnnou seřazenou sadu jejího obsahu. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Vytvoří výčet sekvence, vytvoří neměnnou seřazenou sadu jejího obsahu a použije zadaný porovnávač. |
CopyToDataTable<T>(IEnumerable<T>) |
Vrátí DataTable, která obsahuje kopie objektů DataRow vzhledem k vstupnímu objektu IEnumerable<T>, kde je obecný parametr |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Zkopíruje DataRow objekty do zadaného DataTablevzhledem k vstupnímu objektu IEnumerable<T>, kde je DataRowobecný parametr |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Zkopíruje DataRow objekty do zadaného DataTablevzhledem k vstupnímu objektu IEnumerable<T>, kde je DataRowobecný parametr |
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Použije funkci akumulátoru na sekvenci. |
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Použije funkci akumulátoru na sekvenci. Zadaná počáteční hodnota akumulátoru se používá jako počáteční hodnota akumulátoru. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Použije funkci akumulátoru na sekvenci. Zadaná počáteční hodnota akumulátoru se používá jako počáteční hodnota akumulátoru a zadaná funkce slouží k výběru výsledné hodnoty. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Poskytuje abstraktní základní třídu kolekce, jejíž klíče jsou vloženy do hodnot. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Poskytuje abstraktní základní třídu kolekce, jejíž klíče jsou vloženy do hodnot. |
All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Určuje, zda všechny prvky sekvence splňují podmínku. |
Any<TSource>(IEnumerable<TSource>) |
Určuje, zda sekvence obsahuje nějaké prvky. |
Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Určuje, zda některý prvek sekvence splňuje podmínku. |
Append<TSource>(IEnumerable<TSource>, TSource) |
Připojí hodnotu na konec sekvence. |
AsEnumerable<TSource>(IEnumerable<TSource>) |
Vrátí zadaný vstup jako IEnumerable<T>. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Vypočítá průměr posloupnosti Decimal hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Vypočítá průměr posloupnosti Double hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Vypočítá průměr posloupnosti Int32 hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Vypočítá průměr posloupnosti Int64 hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Vypočítá průměr posloupnosti hodnot nullable Decimal, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Vypočítá průměr posloupnosti hodnot nullable Double, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Vypočítá průměr posloupnosti hodnot nullable Int32, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Vypočítá průměr posloupnosti hodnot nullable Int64, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Vypočítá průměr posloupnosti hodnot nullable Single, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Vypočítá průměr posloupnosti Single hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Cast<TResult>(IEnumerable) |
Přetypuje prvky IEnumerable na zadaný typ. |
Chunk<TSource>(IEnumerable<TSource>, Int32) |
Rozdělí prvky sekvence na bloky velikosti maximálně |
Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Zřetězí dvě sekvence. |
Contains<TSource>(IEnumerable<TSource>, TSource) |
Určuje, zda sekvence obsahuje zadaný prvek pomocí výchozího porovnávače rovnosti. |
Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Určuje, zda sekvence obsahuje zadaný prvek pomocí zadaného IEqualityComparer<T>. |
Count<TSource>(IEnumerable<TSource>) |
Vrátí počet prvků v posloupnosti. |
Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí číslo, které představuje, kolik prvků v zadané sekvenci splňuje podmínku. |
CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Poskytuje abstraktní základní třídu kolekce, jejíž klíče jsou vloženy do hodnot. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
Vrátí prvky zadané sekvence nebo výchozí hodnotu parametru typu v jednotonové kolekci, pokud je sekvence prázdná. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Vrátí prvky zadané sekvence nebo zadanou hodnotu v jednotonové kolekci, pokud je sekvence prázdná. |
Distinct<TSource>(IEnumerable<TSource>) |
Vrátí odlišné prvky ze sekvence pomocí výchozího porovnávače rovnosti k porovnání hodnot. |
Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vrátí odlišné prvky ze sekvence pomocí zadaného IEqualityComparer<T> k porovnání hodnot. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Vrátí odlišné prvky ze sekvence podle zadané funkce selektoru klíče. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vrátí odlišné prvky ze sekvence podle zadané funkce selektoru klíčů a pomocí zadaného porovnávacího modulu k porovnání klíčů. |
ElementAt<TSource>(IEnumerable<TSource>, Index) |
Vrátí prvek v zadaném indexu v sekvenci. |
ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Vrátí prvek v zadaném indexu v sekvenci. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index) |
Vrátí prvek v zadaném indexu v sekvenci nebo výchozí hodnotu, pokud je index mimo rozsah. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Vrátí prvek v zadaném indexu v sekvenci nebo výchozí hodnotu, pokud je index mimo rozsah. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Vytvoří množinu dvou sekvencí pomocí výchozího porovnávače rovnosti k porovnání hodnot. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří množinu dvou sekvencí pomocí zadaného IEqualityComparer<T> k porovnání hodnot. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Vytvoří rozdíl množiny dvou sekvencí podle zadané funkce selektoru klíče. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří rozdíl množiny dvou sekvencí podle zadané funkce selektoru klíče. |
First<TSource>(IEnumerable<TSource>) |
Vrátí první prvek sekvence. |
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí první prvek v sekvenci, která splňuje zadanou podmínku. |
FirstOrDefault<TSource>(IEnumerable<TSource>) |
Vrátí první prvek sekvence nebo výchozí hodnotu, pokud sekvence neobsahuje žádné prvky. |
FirstOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Vrátí první prvek sekvence nebo zadanou výchozí hodnotu, pokud sekvence neobsahuje žádné prvky. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí první prvek sekvence, která splňuje podmínku nebo výchozí hodnotu, pokud není nalezen žádný takový prvek. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Vrátí první prvek sekvence, která splňuje podmínku, nebo zadanou výchozí hodnotu, pokud nebyl nalezen žádný takový prvek. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíče. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíčů a porovná klíče pomocí zadaného porovnávače. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíčů a projekty prvky pro každou skupinu pomocí zadané funkce. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Seskupí prvky sekvence podle funkce selektoru klíče. Klíče se porovnávají pomocí porovnávače a jednotlivé prvky skupiny se promítají pomocí zadané funkce. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Klíče se porovnávají pomocí zadaného porovnávače. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Prvky každé skupiny se promítnou pomocí zadané funkce. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Seskupí prvky sekvence podle zadané funkce selektoru klíčů a vytvoří výslednou hodnotu z každé skupiny a jejího klíče. Hodnoty klíče se porovnávají pomocí zadaného porovnávače a prvky každé skupiny se promítnou pomocí zadané funkce. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>) |
Koreluje prvky dvou sekvencí na základě rovnosti klíčů a seskupuje výsledky. Výchozí porovnávač rovnosti se používá k porovnání klíčů. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>) |
Koreluje prvky dvou sekvencí na základě rovnosti klíčů a seskupuje výsledky. Zadaný IEqualityComparer<T> slouží k porovnání klíčů. |
Index<TSource>(IEnumerable<TSource>) |
Vrátí výčet, který zahrnuje index elementu do řazené kolekce členů. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Vytvoří průnik sady dvou sekvencí pomocí výchozího porovnávače rovnosti k porovnání hodnot. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří průnik sady dvou sekvencí pomocí zadaného IEqualityComparer<T> k porovnání hodnot. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Vytvoří průnik množiny dvou sekvencí podle zadané funkce selektoru kláves. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří průnik množiny dvou sekvencí podle zadané funkce selektoru kláves. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Koreluje prvky dvou sekvencí na základě odpovídajících klíčů. Výchozí porovnávač rovnosti se používá k porovnání klíčů. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Koreluje prvky dvou sekvencí na základě odpovídajících klíčů. Zadaný IEqualityComparer<T> slouží k porovnání klíčů. |
Last<TSource>(IEnumerable<TSource>) |
Vrátí poslední prvek sekvence. |
Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí poslední prvek sekvence, která splňuje zadanou podmínku. |
LastOrDefault<TSource>(IEnumerable<TSource>) |
Vrátí poslední prvek sekvence nebo výchozí hodnotu, pokud sekvence neobsahuje žádné prvky. |
LastOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Vrátí poslední prvek sekvence nebo zadanou výchozí hodnotu, pokud sekvence neobsahuje žádné prvky. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí poslední prvek sekvence, která splňuje podmínku nebo výchozí hodnotu, pokud se takový prvek nenajde. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Vrátí poslední prvek sekvence, která splňuje podmínku, nebo zadanou výchozí hodnotu, pokud se nenajde žádný takový prvek. |
LongCount<TSource>(IEnumerable<TSource>) |
Vrátí Int64, který představuje celkový počet prvků v sekvenci. |
LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí Int64, který představuje, kolik prvků v sekvenci splňuje podmínku. |
Max<TSource>(IEnumerable<TSource>) |
Vrátí maximální hodnotu v obecné sekvenci. |
Max<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Vrátí maximální hodnotu v obecné sekvenci. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální Decimal hodnotu. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální Double hodnotu. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální Int32 hodnotu. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální Int64 hodnotu. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální hodnotu s možnou hodnotou null Decimal. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální hodnotu s možnou hodnotou null Double. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální hodnotu s možnou hodnotou null Int32. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální hodnotu s možnou hodnotou null Int64. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální hodnotu s možnou hodnotou null Single. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí maximální Single hodnotu. |
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Vyvolá transformační funkci na každém prvku obecné sekvence a vrátí maximální výslednou hodnotu. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Vrátí maximální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Vrátí maximální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče a porovnávače klíčů. |
Min<TSource>(IEnumerable<TSource>) |
Vrátí minimální hodnotu v obecné sekvenci. |
Min<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Vrátí minimální hodnotu v obecné sekvenci. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální Decimal hodnotu. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální Double hodnotu. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální Int32 hodnotu. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální Int64 hodnotu. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální hodnotu s možnou hodnotou null Decimal. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální hodnotu s možnou hodnotou null Double. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální hodnotu s možnou hodnotou null Int32. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální hodnotu s možnou hodnotou null Int64. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální hodnotu s možnou hodnotou null Single. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Vyvolá transformační funkci na každém prvku sekvence a vrátí minimální Single hodnotu. |
Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Vyvolá transformační funkci na každém prvku obecné sekvence a vrátí minimální výslednou hodnotu. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Vrátí minimální hodnotu v obecné sekvenci podle zadané funkce selektoru klíčů. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Vrátí minimální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče a porovnávače klíčů. |
OfType<TResult>(IEnumerable) |
Filtruje prvky IEnumerable na základě zadaného typu. |
Order<T>(IEnumerable<T>) |
Seřadí prvky sekvence ve vzestupném pořadí. |
Order<T>(IEnumerable<T>, IComparer<T>) |
Seřadí prvky sekvence ve vzestupném pořadí. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Seřadí prvky sekvence ve vzestupném pořadí podle klíče. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Seřadí prvky sekvence ve vzestupném pořadí pomocí zadaného porovnávače. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Seřadí prvky sekvence v sestupném pořadí podle klíče. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Seřadí prvky sekvence v sestupném pořadí pomocí zadaného porovnávače. |
OrderDescending<T>(IEnumerable<T>) |
Seřadí prvky sekvence v sestupném pořadí. |
OrderDescending<T>(IEnumerable<T>, IComparer<T>) |
Seřadí prvky sekvence v sestupném pořadí. |
Prepend<TSource>(IEnumerable<TSource>, TSource) |
Přidá hodnotu na začátek sekvence. |
Reverse<TSource>(IEnumerable<TSource>) |
Invertuje pořadí prvků v sekvenci. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Prodá jednotlivé prvky sekvence do nového formuláře. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Každý prvek sekvence začlení do nového formuláře zahrnutím indexu elementu. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Prodá jednotlivé prvky sekvence do IEnumerable<T> a zploštějí výsledné sekvence do jedné sekvence. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Prodá jednotlivé prvky sekvence do IEnumerable<T>a zploštějí výsledné sekvence do jedné sekvence. Index každého zdrojového prvku se používá v projektované formě tohoto prvku. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Prodá každý prvek sekvence na IEnumerable<T>, zploštějí výsledné sekvence do jedné sekvence a vyvolá funkci voliče výsledků na každém prvku v něm. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Prodá každý prvek sekvence na IEnumerable<T>, zploštějí výsledné sekvence do jedné sekvence a vyvolá funkci voliče výsledků na každém prvku v něm. Index každého zdrojového prvku se používá v přechodné projektované formě daného prvku. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Určuje, zda jsou dvě sekvence stejné porovnáním prvků pomocí výchozího porovnávače rovnosti pro jejich typ. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Určuje, zda jsou dvě sekvence stejné porovnáním jejich prvků pomocí zadaného IEqualityComparer<T>. |
Single<TSource>(IEnumerable<TSource>) |
Vrátí jediný prvek sekvence a vyvolá výjimku, pokud v sekvenci není právě jeden prvek. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí jediný prvek sekvence, která splňuje zadanou podmínku, a vyvolá výjimku, pokud existuje více než jeden takový prvek. |
SingleOrDefault<TSource>(IEnumerable<TSource>) |
Vrátí jediný prvek sekvence nebo výchozí hodnotu, pokud je sekvence prázdná; tato metoda vyvolá výjimku, pokud je v sekvenci více než jeden prvek. |
SingleOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Vrátí jediný prvek sekvence nebo zadanou výchozí hodnotu, pokud je sekvence prázdná; tato metoda vyvolá výjimku, pokud je v sekvenci více než jeden prvek. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí jediný prvek sekvence, která splňuje zadanou podmínku nebo výchozí hodnotu, pokud žádný takový prvek neexistuje; tato metoda vyvolá výjimku, pokud podmínka splňuje více než jeden prvek. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Vrátí jediný prvek sekvence, která splňuje zadanou podmínku, nebo zadanou výchozí hodnotu, pokud neexistuje žádný takový prvek; tato metoda vyvolá výjimku, pokud podmínka splňuje více než jeden prvek. |
Skip<TSource>(IEnumerable<TSource>, Int32) |
Obchází zadaný počet prvků v sekvenci a vrátí zbývající prvky. |
SkipLast<TSource>(IEnumerable<TSource>, Int32) |
Vrátí novou výčtovou kolekci, která obsahuje prvky z |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Obchází prvky v sekvenci, pokud je zadaná podmínka pravdivá a vrátí zbývající prvky. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Obchází prvky v sekvenci, pokud je zadaná podmínka pravdivá a vrátí zbývající prvky. Index elementu se používá v logice predikátové funkce. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Vypočítá součet posloupnosti Decimal hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Vypočítá součet posloupnosti Double hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Vypočítá součet posloupnosti Int32 hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Vypočítá součet posloupnosti Int64 hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Vypočítá součet posloupnosti hodnot nullable Decimal, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Vypočítá součet posloupnosti hodnot nullable Double, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Vypočítá součet posloupnosti hodnot nullable Int32, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Vypočítá součet posloupnosti hodnot nullable Int64, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Vypočítá součet posloupnosti hodnot nullable Single, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Vypočítá součet posloupnosti Single hodnot, které jsou získány vyvoláním transformační funkce na každém prvku vstupní sekvence. |
Take<TSource>(IEnumerable<TSource>, Int32) |
Vrátí zadaný počet souvislých prvků od začátku sekvence. |
Take<TSource>(IEnumerable<TSource>, Range) |
Vrátí zadanou oblast souvislých prvků z sekvence. |
TakeLast<TSource>(IEnumerable<TSource>, Int32) |
Vrátí novou výčtovou kolekci, která obsahuje poslední prvky |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Vrátí prvky ze sekvence, pokud je zadaná podmínka pravdivá. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Vrátí prvky ze sekvence, pokud je zadaná podmínka pravdivá. Index elementu se používá v logice predikátové funkce. |
ToArray<TSource>(IEnumerable<TSource>) |
Vytvoří pole z IEnumerable<T>. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Vytvoří Dictionary<TKey,TValue> z IEnumerable<T> podle zadané funkce selektoru kláves. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří Dictionary<TKey,TValue> z IEnumerable<T> podle zadané funkce selektoru klíče a porovnávače klíčů. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Vytvoří Dictionary<TKey,TValue> z IEnumerable<T> podle zadaných funkcí selektoru klíčů a selektoru prvků. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Vytvoří Dictionary<TKey,TValue> z IEnumerable<T> podle zadané funkce selektoru klíče, porovnávače a funkce selektoru prvku. |
ToHashSet<TSource>(IEnumerable<TSource>) |
Vytvoří HashSet<T> z IEnumerable<T>. |
ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří HashSet<T> z IEnumerable<T> pomocí |
ToList<TSource>(IEnumerable<TSource>) |
Vytvoří List<T> z IEnumerable<T>. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Vytvoří Lookup<TKey,TElement> z IEnumerable<T> podle zadané funkce selektoru kláves. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří Lookup<TKey,TElement> z IEnumerable<T> podle zadané funkce selektoru klíče a porovnávače klíčů. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Vytvoří Lookup<TKey,TElement> z IEnumerable<T> podle zadaných funkcí selektoru klíčů a selektoru prvků. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Vytvoří Lookup<TKey,TElement> z IEnumerable<T> podle zadané funkce selektoru klíče, porovnávače a funkce selektoru prvků. |
TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32) |
Pokusí se určit počet prvků v sekvenci bez vynucení výčtu. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Vytvoří sjednocování dvou sekvencí pomocí výchozího porovnávače rovnosti. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří sjednocovací sadu dvou sekvencí pomocí zadaného IEqualityComparer<T>. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Vytvoří sjednocování dvou sekvencí podle zadané funkce selektoru klíče. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Vytvoří sjednocování dvou sekvencí podle zadané funkce selektoru klíče. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtruje posloupnost hodnot na základě predikátu. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Filtruje posloupnost hodnot na základě predikátu. Index každého prvku se používá v logice predikátové funkce. |
Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>) |
Vytvoří sekvenci řazených kolekcí členů s prvky ze dvou zadaných sekvencí. |
Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>) |
Vytvoří sekvenci řazených kolekcí členů s prvky ze tří zadaných sekvencí. |
Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
Použije zadanou funkci na odpovídající prvky dvou sekvencí a vytvoří sekvenci výsledků. |
AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
AsParallel<TSource>(IEnumerable<TSource>) |
Umožňuje paralelizaci dotazu. |
AsQueryable(IEnumerable) |
Převede IEnumerable na IQueryable. |
AsQueryable<TElement>(IEnumerable<TElement>) |
Převede obecný IEnumerable<T> na obecný IQueryable<T>. |
Ancestors<T>(IEnumerable<T>) |
Vrátí kolekci prvků, které obsahují předky každého uzlu ve zdrojové kolekci. |
Ancestors<T>(IEnumerable<T>, XName) |
Vrátí filtrovanou kolekci prvků, která obsahuje nadřazené prvky každého uzlu ve zdrojové kolekci. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající XName. |
DescendantNodes<T>(IEnumerable<T>) |
Vrátí kolekci následnických uzlů každého dokumentu a prvku ve zdrojové kolekci. |
Descendants<T>(IEnumerable<T>) |
Vrátí kolekci prvků, které obsahují potomky prvků každého prvku a dokumentu ve zdrojové kolekci. |
Descendants<T>(IEnumerable<T>, XName) |
Vrátí filtrovanou kolekci prvků, která obsahuje potomky prvků každého prvku a dokumentu ve zdrojové kolekci. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající XName. |
Elements<T>(IEnumerable<T>) |
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. |
Elements<T>(IEnumerable<T>, XName) |
Vrátí filtrovanou kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající XName. |
InDocumentOrder<T>(IEnumerable<T>) |
Vrátí kolekci uzlů, které obsahují všechny uzly ve zdrojové kolekci seřazené v pořadí dokumentů. |
Nodes<T>(IEnumerable<T>) |
Vrátí kolekci podřízených uzlů každého dokumentu a prvku ve zdrojové kolekci. |
Remove<T>(IEnumerable<T>) |
Odebere všechny uzly ve zdrojové kolekci z nadřazeného uzlu. |