Finding Isogram Word
I like the second approach since it allows you to exit as soon as a false condition is reached and is simpler than the first.  I would offer one minor optimization, keep the check for isletter separate and only check for duplicate if isletter is true:

static bool IsIsogram(string str)
{
    //TRICK: HashSet&lt;T&gt;.Add(T) returns false if an item already exists in HashSet&lt;T&gt;,
    //otherwise returns true and add the character to the datastructure

    var charHash = new HashSet&lt;char&gt;();

    foreach (var ch in str.ToLower())
    {   
        //check if the charHash.Add() returns false, if it does then terminate
        //as it means the character already exists
        if(char.IsLetter(ch))
        {
            if (!charHash.Add(ch))
                return false; 
        }

    }
    return true; //otherwise return true
}