【发布时间】:2016-12-19 15:24:34
【问题描述】:
我正在尝试在我们正在使用的搜索页面上实现 LINQ 查询。从初始查询返回的数据布局如下:
ListID ListName TagId TagValue
1 Name1 1 Tag1
1 Name1 2 Tag2
2 Name2 3 Tag3
基本上,列表是搜索类别,标签是搜索词。我想要做的是带回这个列表,将它分成唯一的列表,然后在页面上显示相关的标签。
我已将数据加载到数据表中,现在我正在尝试将列表名称放入我的 SearchCategories 对象中:
public class SearchCategories
{
public int SearchCategoryId { get; set; }
public string SearchCategoryName { get; set; }
public SearchTags searchTags { get; set; }
public List<SearchTags> lstSearchTags= new List<SearchTags>();
}
和 SearchTag 类:
public class SearchTags
{
public int SearchTagId { get; set; }
public string SearchTagValue { get; set; }
}
然后将标签放入对象的相关列表中。
这是我正在使用的代码:
dtLists.Load(reader);
var distinctValues = dtLists.AsEnumerable()
.Select(row => new SearchCategories
{
SearchCategoryId = row.Field<int>("ListNameID"),
SearchCategoryName = row.Field<string>("listName")
})
.Distinct();
较新的 LINQ,但认为这应该更容易。提前致谢。
【问题讨论】:
-
看看
GroupBy(而不是Distinct)。