Maybe your method should be called ContainsTheSameSetOfLetters
?
public static bool ContainsTheSameSetOfLetters(this string word1, string word2)
{
var chars = new HashSet<char>(word1);
return word2.All(x => chars.Contains(x));
}
If you care about number of time particular letter is being used, you can use following:
public static bool ContainsTheSameSetOfLetters(string word1, string word2)
{
var chars = word1.GroupBy(x => x).ToDictionary(g => g.Key, g => g.Count());
return word2.GroupBy(x => x).All(g => chars.ContainsKey(g.Key) && chars[g.Key] >= g.Count());
}