Feedback

C# - Multi Combine Ergänzung zu Path.Combine

Veröffentlicht von am 17.05.2010
(0 Bewertungen)
Hiermit kann man in .NET 2.0 in einer kleinen Funktion direkt mehrere Strings zusammen setzen.
/// <summary>
        /// Combines a unlimited amount of parts to a path string.
        /// </summary>
        /// <param name="paths">The parts of the path to combine.</param>
        /// <returns>Returns the combined path as string.</returns>
        /// <exception cref="ArgumentNullException"></exception>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
public static string MultiCombine(params string[] paths)
        {
            if (paths == null)
            {
                throw new ArgumentNullException("paths", "paths cannot be null");
            }
            if (paths.Length < 2)
            {
                throw new ArgumentOutOfRangeException("paths", "paths cannot be less than 2");
            }

            string currentString = paths[0];

            for (int i = 1; i < paths.Length; i++)
            {
                currentString = System.IO.Path.Combine(currentString, paths[i]);
            }
            return currentString;
        }

5 Kommentare zum Snippet

Raimund Pließnig schrieb am 17.05.2010:
Warum wurde diese Funktion nicht mit einer FOREACH Schleife gemacht? wäre doch eleganter oder?
Firendeath schrieb am 18.05.2010:
Lässt sich streiten, ob das eleganter aussieht...

public static string MultiCombine(params string[] paths)
{
if (paths == null)
{
throw new ArgumentNullException("paths", "paths cannot be null");
}
if (paths.Length < 2)
{
throw new ArgumentOutOfRangeException("paths", "paths cannot be less than 2");
}
string currentString = "";
foreach (string s in paths)
{
if (currentString == "")
string currentString = s;
else

currentString = System.IO.Path.Combine(currentString, paths[i]);
}
return currentString;
}
bigdeak schrieb am 26.05.2010:
Ich nutzer immer string.Empty statt "" für einen leeren string.

string currentString = string.Empty;

foreach (string path in paths)
{
if (currentString == string.Empty)
currentString = path;
else
currentString = System.IO.Path.Combine(currentString, path);
}
Firendeath schrieb am 02.06.2010:
Wieso nimmt man da string.Empty ???
Hab sonst immer "" genommen und bin nie auf irgendein Problem gestoßen...
Stefan Wimmer schrieb am 02.06.2010:
Wenn mans in ne if Anweisung schreibt weiß man dass der Entwickler wirklich string.Empty meint und nicht aus versehen vergessen hat da nen string reinzuschreiben. Gilt bei uns sogar als Convention
 

Logge dich ein, um hier zu kommentieren!