Hier ein Beispiel um zuerst alle array-elemente in kleinschreibung zu konvertieren und dann die doppelten auszusortieren: (achtung: ich bin kein ruby programmierer, kann also sein das sich syntaxfehler einschleichen)
a.each_index { |i| a[i] = a[i].downcase } a = a.uniq
du könntest vorher mit der "each" methode über das array iterieren und jeden string mit der "downcase" methode in kleinschreibung umwandeln, danach hast du keine groß/kleinschreibungsunterschiede mehr
[code]a.map(&:downcase).uniq [/code] waere moeglich, wenn du activesupport als require hast. Ich wuerds sonst so machen: [code]a = a.map {|e| e.downcase}.uniq[/code]
@riethmayer: Effizienter wäre [code]a.map!{|e| e.downcase}.uniq![/code], da so verhindert wird, dass temporäre Zwischenergebnisse erzeugt werden.
Wenn die Umwandlung in Kleinbuchstaben nicht erwünscht ist, würde sich die Verwendung von Enumerable#uniq_by aus der [url=http://facets.rubyforge.org/]Facets API[/url] anbieten: [code]a = a.uniq_by {|e| e.downcase}[/code] Oder ausgeschrieben: [code]h = {} a = a.inject([]) {|acc,elm| h[elm.downcase] ||= acc << elm}[/code]