Из блога Майка Сноу: Поддержка наборов данных в Silverlight
Silverlight предоставляет несколько вариантов поддержки наборов данных для их хранения и извлечения. В этом совете я покажу вам различные пути использования этих возможностей. Не забудьте добавить пространство имен System.Collections к вашему коду.
BitArray. BitArray это класс, иллюстрирующий как управлять коллекцией битовых значений, представленных значениями true (1 = бит включен) или false (0 = бит выключен). Следующий пример показывает использование BitArray. Помните, что BitArray имеет множество перегруженных конструкторов, здесь же представлен только один из них.
BitArray bitArray = new BitArray(4);
// Add
bitArray[0] = true;
bitArray[1] = false;
bitArray[2] = false;
bitArray[3] = true;
// Retreive
if (true == bitArray[1])
{
//...
}
List. List это коллекция, позволяющая хранить любой тип данных, доступ к которым осуществляется по индексу. В примере ниже используется строка, но вы можете заменить строку на любой тип по своему усмотрению.
List<string> test = new List<string>();
// Add data
test.Add("Hello");
test.Add("There");
test.Add("Goodbye");
// Retrieve "Goodbye"
string data = test[2];
Stack. Stack всегда работает по принципу "Последним пришел, первым вышел" (LIFO). Таким образом, данные, которые были добавлены к стеку методом Push(), будут получены первыми вызовом метода Pop(). Как и в случаи с классом List, в Stack вы можете хранить любые типы объектов. На примере ниже мы используем тип integer.
Stack<int> stack = new Stack<int>();
stack.Push(5);
stack.Push(3);
stack.Push(4);
// Pop the 4 off the stack.
int test = stack.Pop();
Queue. Этот класс поддерживает прицип "Первым пришел, первым вышел" (FIFO). Объекты добавляются методом Enqueue() и извлекаются с удалением методом Dequeue(). На примере ниже, мы устанавливаем в очередь три строки. Затем, вызовом Dequeue(), мы извлекаем первую строку со значением "First". Если бы мы предприняли еще один вызов Dequeue(), мы извлекли бы строку со значением "Second".
// Add data
Queue<string> queue = new Queue<string>();
queue.Enqueue("First");
queue.Enqueue("Second");
queue.Enqueue("Third");
// Retrieve the string "First"
string test = queue.Dequeue();
LinkedList. LinkedList содержит набор связанных элементов. При этом у вас есть прямой доступ к "голове" и "хвосту" списка, и вы можете двигаться по списку от начала до конца. На примере ниже, мы задекларировали класс Node, который мы будем хранить в LinkedList.
class Node
{
private int _ID;
public Node(int ID)
{
_ID = ID;
}
public int ID
{
get { return _ID; }
set { ID = value; }
}
};
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
// Add Nodes
LinkedList<Node> _list = new LinkedList<Node>();
LinkedListNode<Node> headNode = _list.AddFirst(new Node(432));
LinkedListNode<Node> lastNode = _list.AddAfter(headNode, new Node(200));
lastNode = _list.AddAfter(lastNode, new Node(451));
lastNode = _list.AddAfter(lastNode, new Node(14));
lastNode = _list.AddAfter(lastNode, new Node(55));
// Retrieve Nodes
foreach (Node node in _list)
{
int ID = node.ID;
}
}
}
Dictionary. Этот класс хранит данные с использованием пары ключ/значение, где ключ используется для идентификации сохраняемых и извлечения сохраненных данных.
Dictionary<int, string> myData = new Dictionary<int, string>();
// Store Data
myData.Add(4324, "Cat");
myData.Add(331, "Dog");
myData.Add(442, "Lion");
myData.Add(3444, "Tiger");
// Retrieve "Lion" by passing the key 3444
string animal = myData[442];
Выдержка из блога Майка Сноу – ссылка на оригинал
Авторские права Майка Сноу. Переведено с разрешения Майка Сноу.
Technorati Tags: Silverlight