我有一个具体问题。我编写了一个程序,在其中在控制台中显示一种矩阵,其中的数字周围带有ascii框。
现在,我编写了一种方法,该方法在矩阵内显示具有特定颜色,描述等内容的特定“区域”。对于这些区域,我想删除/删除单个ASCII字符,以便为每个区域获得1个框。
希望你能帮助我!
我的代码:
public static void OrderByMaxValue(int input, string strInput)
{
try
{
//Ruft die Datenbank-Helper auf
var results = DBHelper.GetMaxValueAndIDForMeasurement(input);
var koordinaten = DBHelper.GetMessflaecheForKopf(input);
var sensorKoordinaten = DBHelper.GetCoordinatesForSensor(koordinaten.ID);
var zonen = DBHelper.GetEverythingFromZoneAndZonenZuordnung(koordinaten.ID);
if (strInput == "JA")
{
//Schleift durch die bestimmten Koordinaten
for (int y = 1; y <= koordinaten.Laenge; y++)
{
for (int o = 1; o <= koordinaten.Breite; o++)
{
//Bestimmt welcher Sensor auf welcher Koordinate liegt
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == o && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
var z = zonen.Where(zone => zone.IDSensor == sK.ID).FirstOrDefault();
if (z != null)
{
Console.ForegroundColor = (ConsoleColor)z.Farbe;
}
//Legt den Wert auf den Sensor
var sattelMaximalwert = results
.Where(sattelMaxi =>
sattelMaxi.IDSensor == sK.ID)
.DefaultIfEmpty(new SattelMax())
.FirstOrDefault();
Console.Write(" ┌".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┐ ");
Console.ForegroundColor = ConsoleColor.Gray;
}
Console.Write("\n");
for (int x = 1; x <= koordinaten.Breite; x++)
{
//Bestimmt welcher Sensor auf welcher Koordinate liegt
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == x && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
var z = zonen.Where(zone => zone.IDSensor == sK.ID).FirstOrDefault();
if (z != null)
{
Console.ForegroundColor = (ConsoleColor)z.Farbe;
}
//Legt den Wert auf den Sensor
var sattelMaximalwert = results
.Where(sattelMaxi =>
sattelMaxi.IDSensor == sK.ID)
.DefaultIfEmpty(new SattelMax())
.FirstOrDefault();
Console.Write($" | {sattelMaximalwert.Maximalwert} | ");
Console.ForegroundColor = ConsoleColor.Gray;
}
Console.Write("\n");
for (int u = 1; u <= koordinaten.Breite; u++)
{
//Bestimmt welcher Sensor auf welcher Koordinate liegt
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == u && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
var z = zonen.Where(zone => zone.IDSensor == sK.ID).FirstOrDefault();
if (z != null)
{
Console.ForegroundColor = (ConsoleColor)z.Farbe;
}
//Legt den Wert auf den Sensor
var sattelMaximalwert = results
.Where(sattelMaxi =>
sattelMaxi.IDSensor == sK.ID)
.DefaultIfEmpty(new SattelMax())
.FirstOrDefault();
Console.Write(" └".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┘ ");
Console.ForegroundColor = ConsoleColor.Gray;
}
Console.Write("\n");
}
Console.ReadKey();
}
else if (strInput == "NEIN")
{
//Schleift durch die bestimmten Koordinaten
for (int y = 1; y <= koordinaten.Laenge; y++)
{
for (int o = 1; o <= koordinaten.Breite; o++)
{
//Bestimmt welcher Sensor auf welcher Koordinate liegt
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == o && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
//Legt den Wert auf den Sensor
var sattelMaximalwert = results
.Where(sattelMaxi =>
sattelMaxi.IDSensor == sK.ID)
.DefaultIfEmpty(new SattelMax())
.FirstOrDefault();
Console.Write(" ┌".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┐ ");
}
Console.Write("\n");
for (int x = 1; x <= koordinaten.Breite; x++)
{
//Bestimmt welcher Sensor auf welcher Koordinate liegt
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == x && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
//Legt den Wert auf den Sensor
var sattelMaximalwert = results
.Where(sattelMaxi =>
sattelMaxi.IDSensor == sK.ID)
.DefaultIfEmpty(new SattelMax())
.FirstOrDefault();
Console.Write($" | {sattelMaximalwert.Maximalwert} | ");
}
Console.Write("\n");
for (int u = 1; u <= koordinaten.Breite; u++)
{
//Bestimmt welcher Sensor auf welcher Koordinate liegt
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == u && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
//Legt den Wert auf den Sensor
var sattelMaximalwert = results
.Where(sattelMaxi =>
sattelMaxi.IDSensor == sK.ID)
.DefaultIfEmpty(new SattelMax())
.FirstOrDefault();
Console.Write(" └".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┘ ");
}
Console.Write("\n");
}
Console.ReadKey();
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}