codice:
class Program
{
public interface IAbstractObj
{
IAbstractObj Compute(string[] input);
}
public class Poltrona : IAbstractObj
{
public Poltrona(bool _occupata, int _numeroFila, char _letteraFila)
{
occupata = _occupata;
numeroFila = _numeroFila;
letteraFila = _letteraFila;
}
private bool occupata = false;
public bool Occupata
{
get { return occupata; }
set { occupata = value; }
}
private int numeroFila = 0;
public int NumeroFila
{
get { return numeroFila; }
set { numeroFila = value; }
}
private char letteraFila = char.MinValue;
public char LetteraFila
{
get { return letteraFila; }
set { letteraFila = value; }
}
public IAbstractObj Compute(string[] input)
{
IAbstractObj retObj = null;
input = input[0].Split(',');
if (!Occupata)
{
if((NumeroFila >= Convert.ToInt32(input[0]) && NumeroFila <= Convert.ToInt32(input[1])))
{
if(IsInRangeCaseInsensitive(LetteraFila, Convert.ToChar(input[2].ToLower()), Convert.ToChar(input[3].ToLower())))
{
retObj = this;
}
}
}
return retObj;
}
private bool IsInRangeCaseInsensitive(char testChar, char startOfRange, char endOfRange)
{
testChar = char.ToUpper(testChar);
startOfRange = char.ToUpper(startOfRange);
endOfRange = char.ToUpper(endOfRange);
if (testChar >= startOfRange && testChar <= endOfRange)
{
return (true);
}
else
{
return (false);
}
}
}
static void Main(string[] args)
{
//Oggetti in un file
IList<IAbstractObj> oggettiAstrattiInUnFile = new List<IAbstractObj>();
oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'A'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'B'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'C'));
oggettiAstrattiInUnFile.Add(new Poltrona(false, 1, 'D'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'E'));
oggettiAstrattiInUnFile.Add(new Poltrona(false, 1, 'F'));
oggettiAstrattiInUnFile.Add(new Poltrona(false, 1, 'G'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'H'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'A'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'B'));
oggettiAstrattiInUnFile.Add(new Poltrona(false, 2, 'C'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'D'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'E'));
oggettiAstrattiInUnFile.Add(new Poltrona(false, 2, 'F'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'G'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'H'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'A'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'B'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'C'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'D'));
oggettiAstrattiInUnFile.Add(new Poltrona(false, 3, 'E'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'F'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'G'));
oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'H'));
//supponendo che l'array in input sia: 1,3,c,g
IList<IAbstractObj> returnList = new List<IAbstractObj>();
foreach (IAbstractObj ao in oggettiAstrattiInUnFile)
{
if (ao.Compute(args) != null)
returnList.Add(ao);
}
//qui visualizzi la lista "returnList" che contiene gli oggetti
}
}
Ciao