using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Perforce.P4
{
public class SimpleListItem<T>
{
public SimpleListItem(T item)
{
Item = item;
Next = null;
}
public T Item { get; private set; }
public SimpleListItem<T> Next { get; internal set; }
}
public class SimpleList<T>
{
public SimpleList()
{
Count = 0;
Head = null;
Tail = null;
}
public SimpleListItem<T> Head { get; private set; }
public SimpleListItem<T> Tail { get; private set; }
public int Count { get; private set; }
public int Add(T item)
{
if (Tail == null)
{
Head = new SimpleListItem<T>(item);
Tail = Head;
}
else
{
Tail.Next = new SimpleListItem<T>(item);
Tail = Tail.Next;
}
Count++;
return Count;
}
public override string ToString()
{
if (Head == null)
{
return null;
}
StringBuilder sb = new StringBuilder(Count * 80);
SimpleListItem<T> curItem = Head;
int idx = 0;
while ((curItem != null) && (idx < Count))
{
if (idx > 0)
{
sb.Append("\r\n");
}
sb.Append(curItem.Item.ToString());
curItem = curItem.Next;
}
return sb.ToString();
}
public T[] ToArray()
{
if (Head == null)
{
return null;
}
T[] value = new T[Count];
SimpleListItem<T> curItem = Head;
int idx = 0;
while ((curItem != null) && (idx < Count))
{
value[idx++] = curItem.Item;
curItem = curItem.Next;
}
return value;
}
public static explicit operator T[](SimpleList<T> l)
{
return l.ToArray();
}
public static explicit operator List<T>(SimpleList<T> l)
{
if (l.Head == null)
{
return null;
}
List<T> value = new List<T>(l.Count);
SimpleListItem<T> curItem = l.Head;
while (curItem != null)
{
value.Add(curItem.Item);
curItem = curItem.Next;
}
return value;
}
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
19640 |
Liz Lam |
"Forking branch Main of perforce-software-p4connect to liz_lam-p4connect." |
|
|
//guest/perforce_software/p4connect/main/src/P4Bridge/p4api.net/SimpleList.cs |
#1
|
18847 |
Norman Morse |
API updates from p4api 15.2 |
|
|