Mit dieser Klasse können Listen mit Hilfe der Black and Whitelist gefiltert werden.
Dank IList können z.B. List<String> Objekte oder Arrays übergeben werden.
Die Listenelemente müssen sich als Key für ein Dictionary eignen, das ist bei String immer der Fall.
Danke an herbivore für das das Feintuning.
using System.Collections.Generic;
namespace Filter
{
internal class BlackWhite<T>
{
private Dictionary<T, bool> black = new Dictionary<T, bool>();
private Dictionary<T, bool> white = new Dictionary<T, bool>();
public BlackWhite(IList<T> black, IList<T> white)
{
foreach (T t in black) {
this.black [t] = true;
}
foreach (T t in white) {
this.white [t] = true;
}
}
public List<T> GetGoodList(IList<T> inputList)
{
List<T> goodList = new List<T>();
foreach (T t in inputList)
{
if (white.ContainsKey(t) || !black.ContainsKey(t)) {
goodList.Add(t);
}
}
return goodList;
}
}
}
4 Kommentare zum Snippet