[英]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.