Path.Combine

Até antes do .NET Framework 4.0, você possui um método estático chamado Combine, exposto pela classe Path. Dado duas strings para este método, ele retorna uma nova string contendo a combinação desses dois paths, colocando ou removendo barras quando necessário. Isso ajuda bastante, já que não precisamos ficar lidando com a string diretamente, verificando se existe ou não as barras para efetuar a concatenação.

Provavelmente você já deve ter se deparado com a situação onde você tem o path separado em mais partes. Com isso, o problema volta a acontecer, pois o método Combine não permite informarmos mais do que duas strings. A versão 4.0 do .NET Framework, a Microsoft adicionou uma nova versão (overload) deste método, que permite informarmos o path através de um paramarray, e com isso, podemos colocar quantas strings quisermos, que ele fará todo o trabalho necessário, e nos devolverá o resultado esperado. Veja o exemplo abaixo:

Console.Write(new StreamReader(Path.Combine(“d:Arquivos”, “Logs”, “Cobranca”, “2009.log”)).ReadToEnd());

Eventualmente, se você informar uma string vazia, ele automaticamente omitirá do resultado final. Além disso, a primeira string passada para este método, deverá sempre representar o path absoluto (“d:” ou “\arquivos”). Se ele encontrar qualquer outro path absoluto no meio, a operação será reiniciada, e todos os paths anteriores serão descartados.

Novos métodos da classe String

A versão 4.0 do .NET Framework, adiciona novos métodos estáticos na classe String, que possibilita trabalhar de forma muito mais simples do que anteriormente. O primeiro desses métodos é o IsNullOrWhiteSpace, que dado uma string, retorna um valor boleano indicando se é uma referência nula, vazio ou uma sequência de caracteres em branco, evitando a necessidade de chamar o método IsNullOrEmpty em conjunto com o método Trim.

Outra novidade é o método Concat<T>, que permite passar uma instância de alguma classe que implemente a Interface IEnumerable<T>. Isso ajudará, principalmente, quando estamos trabalhando com LINQ, e precisamos concaternar alguma propriedade retornada pela query, sem a necessidade de converter explicitamente em um array de strings. É importante dizer que esse método invoca o método ToString dos objetos (exposto pela classe System.Object), que obrigará você a customizá-lo, exibindo as informações necessárias, que na maioria das vezes, representa o estado do objeto. O exemplo abaixo ilustra o uso:

public class Usuario
{
    public string Nome { get; set; }
    public string Estado { get; set; }

    public override string ToString()
    {
        return this.Nome;
    }
}

string resultado = string.Concat((from u in listaDeUsuarios where u.Estado = “SP” select u));