【发布时间】:2010-08-31 16:12:22
【问题描述】:
我有一个数据表,其中包含一个名为标签的列,标签可以具有诸如
之类的值row[0] = Tag1
row[1] = Tag1, Tag2
row[2] = Tag2, Tag3
row[3] = Tag1, Tag2, Tag3
row[4] = Tag4, Tag6
并用逗号分隔
等等。
我有当前文档的标签值,并运行了一个查询来选择所有其他在该行中具有任一标签的文档。例如,假设当前文档标签是 (Tag1, Tag2, Tag3)
所以从上面的示例行中,除了 row[4] 之外,上面的所有行都返回
这是我丢失的一点,我现在想根据与当前文档匹配的标签数量对数据表进行排序。所以对于我到目前为止所讨论的示例,它们应该被订购
row[3] = Tag1, Tag2, Tag3
row[1] = Tag1, Tag2
row[2] = Tag2, Tag3
row[0] = Tag1
以前没有使用过 linq,但被告知它可以做到这一点。
目前为止
var query = from c in dt.AsEnumerable()
orderby c.Field<string>("Tags").CompareTo(dr["Tags"]) ascending
select c;
【问题讨论】: