64 lines
1.4 KiB
C#
64 lines
1.4 KiB
C#
using System;
|
|
|
|
namespace Password_Manager
|
|
{
|
|
sealed class ProfileList : IList<Profile>
|
|
{
|
|
public ProfileList() : base() { }
|
|
|
|
public override void Add(Profile p)
|
|
{
|
|
//grow the list by 1 and copy all existing items
|
|
Profile[] tmp = new Profile[this.Length + 1];
|
|
|
|
for (int i = 0; i < this.Length; i++)
|
|
{
|
|
tmp[i] = this[i];
|
|
}
|
|
|
|
this.list = tmp;
|
|
|
|
//--------------------------------------------------------
|
|
|
|
list[this.Length - 1] = p;
|
|
}
|
|
|
|
public override void Remove(Profile p)
|
|
{
|
|
Profile[] tmp = new Profile[this.Length - 1];
|
|
|
|
for (int i = 0; i < tmp.Length; i++)
|
|
{
|
|
if (this[i] != p)
|
|
{
|
|
tmp[i] = this[i];
|
|
}
|
|
}
|
|
|
|
this.list = tmp;
|
|
}
|
|
|
|
public override Profile SearchByName(string name)
|
|
{
|
|
Profile result = null;
|
|
|
|
for (int i = 0; i < this.Length; i++)
|
|
{
|
|
if (this[i].Name == name)
|
|
{
|
|
result = this[i];
|
|
}
|
|
}
|
|
|
|
if (result == null)
|
|
{
|
|
throw new ProfileNotFoundException();
|
|
}
|
|
else
|
|
{
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
}
|