Silverlight 3.0에서 응용 프로그램을 만들고 있습니다. 해당 응용 프로그램에서 다음과 같은 기능을 구현하고 싶습니다. 값 컬렉션을 유지해야합니다. 한 끝에서 해당 컬렉션의 값을 지속적으로 추가하고 다른 end.Means 값을 제거하는 3000 값 컬렉션을 유지한다고 가정합니다. 해당 컬렉션에서 하나의 값을 추가하는 경우 한 값을 3000 값의 컬렉션을 가질 수 있도록 제거해야합니다. "순환 큐"를 사용하려면 원형 큐의 실버 라이트에 어떤 기능이 있습니까? 아니면 원형 큐 대신 효율적인 논리가 있습니까? 도와주세요. 미리 감사드립니다.Silverlight의 순환 대기열 기능
1
A
답변
1
당신이 사용하는 내장 클래스 Queue
하고 주위에 래퍼을 구현 할 수 있습니다 : 응답에 대한
public class CircularQueue
{
private int totalItems;
private Queue<object> queue = new Queue<object>();
public CircularQueue(int maxCount)
{
this.totalItems = maxCount;
}
/// <summary>
/// Get first object from queue.
/// </summary>
public object Dequeue()
{
// ToDo: You might want to check first if the queue is empty to avoid a InvalidOperationException
object firstObject = this.queue.Dequeue();
return firstObject;
}
public void EnQueue(object objectToPutIntoQueue)
{
if (this.queue.Count >= this.totalItems)
{
object unusedObject = this.queue.Dequeue();
// ToDo: Cleanup the instance of ununsedObject.
}
this.queue.Enqueue(objectToPutIntoQueue);
}
}
1
내가 어떤 특정 용어 '순환 큐'에 익숙하지 않은,하지만 당신은 쉽게 자신을 만들 수 있습니다
public class CircularQuene<T> : List<T>
{
public CircularQuene(int maxCount)
{
count = maxCount;
}
new public void Add(T variable)
{
base.Add(variable);
if (Count > count)
{
RemoveAt(0);
}
}
private int count;
public int MaxCount
{
get
{
return count;
}
set
{
count = value;
}
}
}
약간 거친, 그러나 당신의 요구에 맞게해야한다.
+0
감사의 답장을 – Dany
감사합니다 ...! – Dany