0

私は持っていDataTableます。C#Sort関数を使用して列に並べ替えを適用したいと考えています。しかし、私は列に複数の値を持っています(区切り記号-Æ)。

だから私は本当に列の特定の部分にソートを適用したい. 可能か不可能か。

例 - 私のDataTable列はTagです。列Tagには 2 つの値がありますTagId + TagName
。今度は、並べ替えを適用したいと思いますTagName

どのようにできるのか ?

例 - 私のDataTable dt

鬼ごっこ

10ÆAA -------->( TagIdÆ TagName)

15ÆBB -------->( TagIdÆ TagName)

0ÆCC -------->( TagIdÆ TagName)

20ÆGG -------->( TagIdÆ TagName)

コード内 -

dt.DefaultView.Sort = "Tag DESC";// -- このコードを試してみましたが、列全体に並べ替えが適用されます

このような結果が必要です(に従ってソートされTagNameます)

鬼ごっこ

20ÆGG

0ÆCC

15ÆBB

10ÆAA

このようではありません ( に従ってソートされていませんTagId)

鬼ごっこ

0ÆCC

10ÆAA

15ÆBB

20ÆGG

4

2 に答える 2

1

Tag列をTagIdand列に置き換えることはできますTagNameか? それはあなたのデータ構造を意味のあるものにし、それを使った作業(ソートなど)を意味のあるものにします。そうでない場合、これはうまくいくはずだと思います:

var ordered = dt.AsEnumerable().OrderByDescending(
 x => x.Field<string>("Tag").Substring(x.Field<string>("Tag").IndexOf("Æ") + 1));
于 2013-04-20T12:45:55.567 に答える
0

元の列がある場合はdatatable、それらの列を並べ替えに使用できます。
それ以外の場合は、各行をループしdata-tableて新しい行を作成しdata-table、コードに使用する必要があります。

于 2013-04-20T12:35:31.090 に答える