0

我有一个DataTable. 我想使用 C#Sort函数对列应用排序。但我在列中有多个值(带分隔符 - Æ)。

所以我真的想对列的特定部分应用排序。有没有可能。

例如 - 我的DataTable专栏是Tag。列Tag有两个值 -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

你可以TagTagIdTagName列替换列吗?这将使您的数据结构变得有意义,进而使使用它(例如排序)变得有意义。如果没有,我认为这应该可行:

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 回答