繁体   English   中英

根据行中的单词对DataTable进行排序

[英]Sorting DataTable based on words in rows

我正在努力根据每行中存在的单词数对Datatable中的记录进行排序。 数据表将填充语义库单词,即

Library_Column
---------------
Business 
Means 
Medium Business
Business Ways
Medium
Business Medium Descriptions
Ways

我想按以下方式对这些记录进行排序,以便将具有记录的最大字符串/行用于匹配。

Library_Column
--------------
Business Medium Descriptions
Medium Business
Business Ways
Business
Means
Ways 

您可以添加2列,其中一列用于统计单词,一列中包含用于存储字符串长度的表达式。 由于带有表达式的列的选项受到限制,因此我们必须在循环中手动更新“ WordCount”列值。

//Call data layer that returns your data table prior to this, 
//and then we will add our custom columns
dt.Columns.Add("WordCount", typeof(int));

foreach (DataRow r in dt.Rows)
{
    r["WordCount"] = r["Library_Column"].ToString().Split(new char[] { ' ' }).Length;
}

dt.Columns.Add("LenOfCol", typeof(int), "len(Library_Column)");

然后在DataTable.DefaultView.Sort绑定之前更新DataTable.DefaultView.Sort ,以首先按字数排序,然后按字符串长度排序(如果多行具有相同的字数)。

dt.DefaultView.Sort = "WordCount DESC, LenOfCol DESC";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM