Hier stelle ich meine "kleine" Sammlung von C# und anderen .NET Projekten zur Verfügung.
Der Code bassiert i.d.R. auf dem .NET Framework 3.5.
Weitere Vorschläge und/oder Anregungen nehme ich gerne entgegen.
eine hierarchische Liste flach klopfen
25.12.2011 posted by fwenner
In diesem Beispiel möchte ich euch Zeiten wie man eine hierarchische Liste (z.B. Items beim TreeView) vollständig in eine flache Liste überführen kann. Zum Einsatz kommt dazu dabei: Generics, Extender-Methode und LINQ.
public static IEnumerable<T> Flatten<T>(
this IEnumerable<T> source,
Func<T, bool> selectorFunction,
Func<T, IEnumerable<T>> getChildrenFunction)
{
var flattenedList = source.Where(selectorFunction);
foreach (TSource element in source)
{
flattenedList = flattenedList.Concat(
getChildrenFunction(element).Flatten(selectorFunction, getChildrenFunction)
);
}
return flattenedList;
}
Den Wert eines Objektes in eine Zahl oder Text umwandel (inkl. NULL / DBNULL)
22.04.2011 posted by fwenner
Mit diesen beiden Extender Methoden ist es möglich den Wert eines beliebigen Objektes in eine Zahl oder einen Text zu konvertieren.
Für die Fälle von NULL, DBNULL sowie im Fehlerfall wird der Standardwert zurückgeliefert.
Weitere Extender für andere Datentypen können analog umgesetzt werden.
public static int ToInt32Value(this object o)
{
if (o == null || o == DBNull.Value)
return 0;
try
{
return Convert.ToInt32(o);
}
catch
{
return 0;
}
}
public static string ToStringValue(this object o)
{
if (o == null || o == DBNull.Value)
return String.Empty;
try
{
return Convert.ToString(o);
}
catch
{
return String.Empty;
}
}
Ist ein Feld in einem SqlDataReader vorhanden?
22.04.2011 posted by fwenner
Mit dieser Extender Methode für C# kann ermittelt werden ob ein Feld mit einem bestimmten Namen in einem SqlDataReader vorhanden ist.
public static bool FieldExists(this SqlDataReader reader, String FieldName)
{
if (reader == null)
return false;
if (String.IsNullOrEmpty(FieldName))
return false;
try
{
return (reader.GetOrdinal(FieldName) != -1);
}
catch
{
return false;
}
}
in einem Bild einen Text/Branding (oben oder unten) hinzufügen
15.05.2010 posted by fwenner
Wenn Sie dynamisch Text in ein Bild einfügen möchten, können Sie hier sehen was Sie dazu benötigen
public enum eGraficAddTextPos
{
Oben = 1,
Unten = 2
}
public static Image AddText(Image oImage, Font oFont, string sText, eGraficAddTextPos oPos)
{
try
{
Graphics oGrafic = Graphics.FromImage(oImage);
oFont = new Font("Arial", 10);
if(oPos == eGraficAddTextPos.Unten)
{
oGrafic.FillRectangle(Brushes.Black, new Rectangle(0, oImage.Height - 18, oImage.Width, 18));
oGrafic.DrawString(sText, oFont, Brushes.White, new Point(0, oImage.Height - 18));
}
else
{
oGrafic.FillRectangle(Brushes.Black, new Rectangle(0, 0, oImage.Width, 18));
oGrafic.DrawString(sText, oFont, Brushes.White, new Point(0, 0));
}
}
catch { }
return oImage;
}
Hyperlink aufrunfen, kann eine Datei oder eine WebAdresse sein
15.05.2010 posted by fwenner
Mit dieser Funktion können Sie einen Hyperlink oder eine Datei mit ihrem Standatdprogramm öffnen
public static void GoToHyperLink(string vsLink)
{
try
{
System.Diagnostics.Process oApp = new System.Diagnostics.Process();
oApp.StartInfo = new System.Diagnostics.ProcessStartInfo(vsLink);
oApp.Start();
oApp.Dispose();
}
catch { }
}
feststellen ob Code auf XP oder höher ausgeführt wird
15.05.2010 posted by fwenner
Mit diesem Codeblock können Sie feststellen ob dieser unter einem Betriebssystem >= XP ausgeführt wird
public static bool IsWindowsXPOrAbove
{
get
{
OperatingSystem system = Environment.OSVersion;
bool runningNT = (system.Platform == PlatformID.Win32NT);
return runningNT && system.Version.CompareTo(new Version(5, 1, 0, 0)) !=0;
}
}