0
私はObservableコレクションをリスト表示し、注文を実行する拡張クラスを持っています。このロジックは動作していますが、アルファ数値もソートする必要があります。例えば。並べ替えObservableコレクションアルファ数値
A1 A10 A2 A3の代わりにA1 A2 A3 A10である必要があります。
これについてはどのような方法が最適ですか?
<pre>
public static void Sort<T>(this ObservableCollection<T> collection, Comparison<T> comparison)
{
var comparer = new Comparer<T>(comparison);
List<T> sorted = collection.OrderBy(x => x, comparer).ToList();
for (int i = 0; i < sorted.Count(); i++)
collection.Move(collection.IndexOf(sorted[i]), i);
}
internal class Comparer<T> : IComparer<T>
{
private readonly Comparison<T> comparison;
public Comparer(Comparison<T> comparison)
{
this.comparison = comparison;
}
#region IComparer<T> Members
public int Compare(T x, T y)
{
return comparison.Invoke(x, y);
}
}
</pre>
明示的に言えば、英数字で比較する比較の実装を求めるのですか? –
正しいですが、文字列リテラルの代わりに英数字を比較する必要があります。 –
[ここで説明した並べ替え](http://www.dotnetperls.com/alphanumeric-sorting)を使用しない理由は何ですか? –