我怎样才能使用LINQ做SELECT UNIQUE?
我有这样一个列表:
Red Red Brown Yellow Green Green Brown Red Orange
我想用LINQ做一个SELECT UNIQUE,也就是我想要的
Red Brown Yellow Green Orange var uniqueColors = from dbo in database.MainTable where dbo.Property == true select dbo.Color.Name;
然后我改变了
var uniqueColors = from dbo in database.MainTable where dbo.Property == true select dbo.Color.Name.Distinct();
没有成功。 第一个select
获取所有的颜色,所以我如何修改它只获得唯一的值?
如果有更好的方法来构build这个查询,那么很高兴能走这条路。
我怎么去编辑它,所以我可以有.OrderBy(“列名称”)即按字母顺序的颜色名称,所以名称属性?
我不断收到消息:
types参数不能从用法中推断出来。 尝试明确指定types参数。
Distinct()将会搞乱顺序,所以你必须在这之后进行sorting。
var uniqueColors = (from dbo in database.MainTable where dbo.Property == true select dbo.Color.Name).Distinct().OrderBy(name=>name);
var uniqueColors = (from dbo in database.MainTable where dbo.Property == true select dbo.Color.Name).Distinct();
使用查询理解语法,您可以实现orderby,如下所示:
var uniqueColors = (from dbo in database.MainTable where dbo.Property orderby dbo.Color.Name ascending select dbo.Color.Name).Distinct();