Chrome 版 En Google

November 02, 2009
最新版 0.071 の Google Chrome extension パッケージ版を当サイトからも配布します。インストールはこちらからどうぞ。詳細は同ページの更新履歴を参照して下さい。

En Google modified by Gulfweed 0.07

September 08, 2008
バグのせいで Firefox 2 で動作しなくなっていました。修正版です。
unnonouno さん報告ありがとうございました。

インストール

正常に更新されない場合は一度 Greasemonkey を無効にして
上記リンクを開き、強制リロードをかけてください。

C# の文字列ソート

August 17, 2008
つい忘れてしまうのでメモっておきます。

.NET Framework の String.CompareTo(String) は Char.CompareTo(Char) と異なる基準で文字を比較します。List<String> と List<Char> に ASCII 文字をつっこんで List<T>.Sort() すると一目瞭然です。List<T>.Sort() はデフォルトで CompareTo 使うため、これで違いを確認できます。


using System;
using System.Collections.Generic;
...
List c_list = new List();
List s_list = new List();

for (int i = 0; ' ' + i <= '~'; i++) {
char c = (char)(' ' + i);
c_list.Add(c);
s_list.Add(new string(c, 1));
}

c_list.Sort();
foreach (char c in c_list) {
Console.Write(c);
}
Console.WriteLine();

s_list.Sort();
foreach (string s in s_list) {
Console.Write(s);
}
Console.WriteLine();




結果は以下です。


!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
'- !"#$%&()*,./:;?@[]^_`{|}~+<=>\0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ




List<Char> のほうは ASCII コード順にソートされていますが、List<String> のほうはなにやら愉快なことになっています。

String.CompareOrdinal() という Char.CompareTo(Char) と同じ基準で比較をするスタティックメソッドがあるので、これを delegate にして渡してやると同じ結果になります。


s_list.Sort(delegate(string a, string b) { return string.CompareOrdinal(a, b); });





!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~



En Google modified by Gulfweed 0.06

August 14, 2008
仕様変更に対応しました。

インストール

正常に更新されない場合は一度 Greasemonkey を無効にして
上記リンクを開き、強制リロードをかけてください。

En Google modified by Gulfweed 0.05

December 11, 2007
日本語インターフェースの仕様が変わったので対応しました

En Google modified by Gulfweed

正常に更新されない場合は一度 Greasemonkey を無効にして
上記リンクを開き、強制リロードをかけてください

原作者: ユーザJavaScript - namespace gimite

前5件

次5件